【问题标题】:PushKit notification not arriving after application kill AND device reboot应用程序终止和设备重启后 PushKit 通知未到达
【发布时间】:2015-07-29 17:11:53
【问题描述】:

感谢 PushKit,即使关闭,我的 iOS 应用程序也能成功接收 VoIP 推送通知。失败只有一个条件:

如果我通过标准任务切换器将我的应用程序滑出(终止)并重新启动我的设备。

起初,我只是在重新启动设备后遇到了这个问题,如以下问题所述:Troubleshooting post-boot push notification delivery failures 后台任务 hack 帮助了我,非常感谢作者,可惜我无法添加任何分数。

现在我被这个问题困住了。通知不会到达,因为如果用户在重启他/她的设备之前终止了应用程序,则在设备启动时根本不会调用 didFinishLaunchingWithOptions

检查我的应用的后台功能:

  • IP 语音
  • 远程通知

这是我的代码 sn-p:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    PKPushRegistry *pushRegistry = [[PKPushRegistry alloc] initWithQueue:dispatch_get_main_queue()];
    pushRegistry.delegate = self;
    pushRegistry.desiredPushTypes = [NSSet setWithObject:PKPushTypeVoIP];
    self.backgroundTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
        [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask];
        self.backgroundTask = UIBackgroundTaskInvalid;
    }];
    return YES;
}

- (void)pushRegistry:(PKPushRegistry *)registry didUpdatePushCredentials:(PKPushCredentials *)credentials forType:(NSString *)type {
    [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask];
    self.backgroundTask = UIBackgroundTaskInvalid;
    NSLog(@"Push token received, probably!");
}

【问题讨论】:

  • 您是否已经找到了解决方案?我遇到了同样的问题:(
  • 不,我没有。我迟早要面对它。我需要 VoIP 通知的原因是因为我需要我的应用程序在向用户显示一些有用的消息之前处理数据。在用户看到它们之前不会触发任何处理程序的简单通知对我来说根本不起作用。
  • 你们有解决方案吗?我现在也面临同样的问题。
  • @AnilkumariOSdeveloper,你有什么解决办法
  • 快 4 年过去了,我认为事情会发生巨大的变化并且是好的,但没有。目前,在我的最新解决方案中,我正在使用 FCM 测试通知,该通知在 Android 上运行良好。那么iOS呢?好吧,我希望两者都使用 FCM,但似乎苹果仍然存在关闭应用程序的问题,如果用户关闭应用程序,这些应用程序根本不会进行后台提取。这将我们带回到 VoIP 通知,但 FCM 不支持 VoIP 证书!再一次,4 年后,iOS 通知是如此痛苦!

标签: ios ios8 apple-push-notifications ios-frameworks


【解决方案1】:

我没有得到任何解决方案,但我确实设法通过我的应用程序通过了要求,这个问题不是一个大问题。我确实有一种强烈的感觉,iOS 就是这样设计的,如果用户关闭了你的应用程序,那么即使在后台也不应该有任何静默可以启动你的应用程序。 当然,我可能是错的,现在已经很长时间没有使用 iOS 了,我相信很多事情都发生了变化。 请随时证明我错了,并描述在 iOS 平台上是否总有合适的解决方案,或者现在有一些新的方法可以解决这个问题。

【讨论】:

  • 这是作为答案发布的,但它不会尝试回答问题。它可能应该是编辑、评论、另一个问题或完全删除。
猜你喜欢
  • 1970-01-01
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-13
  • 2020-02-06
相关资源
最近更新 更多