【问题标题】:Get Apple's remote push notifications even after app terminates即使在应用程序终止后也能获得 Apple 的远程推送通知
【发布时间】:2014-08-07 07:00:07
【问题描述】:

我正在开发一个 iOS 应用程序,它会在特定时间间隔接收苹果的远程推送通知。当应用程序处于活动状态以及应用程序处于后台时,成功接收到通知。但是当应用从应用切换器/程序坞中终止时,直到应用重新启动后才会收到通知。

我尝试了以下代码以使应用程序在后台保持活动状态。在applicationWillTerminate: 方法中实现了相同的代码,但它不起作用。

__block UIBackgroundTaskIdentifier bgTask ;
    UIApplication  *app = [UIApplication sharedApplication];
    bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
        [app endBackgroundTask:bgTask];
        [app enabledRemoteNotificationTypes];
        bgTask = UIBackgroundTaskInvalid;
    }];

在应用终止后接收通知的最佳方式是什么?

【问题讨论】:

  • 如果您指定远程通知后台模式,那么 iOS 将在收到远程通知时重新启动您的应用程序除非您的应用程序从切换器中终止,在这种情况下它们假设用户不希望您的应用运行,因此在用户手动启动您的应用之前,您的应用不会重新启动
  • 这违反了苹果的设计,我认为你不应该浪费时间和精力。
  • 听起来你想要静默通知打开你的应用程序以允许处理developer.apple.com/library/ios/documentation/UIKit/Reference/…:

标签: ios apple-push-notifications background-process uiapplicationdelegate


【解决方案1】:

如果您在应用切换器中主动停止应用,它将停止接收任何推送通知。

这是 Apple 工程师在开发者论坛中所述的预期行为。

【讨论】:

  • 是的,我现在已经理解了这种行为。谢谢你。 :)
  • 有这个变化吗?我一直在阅读一些答案,暗示@kevin griesbach 所说的内容是正确的,但是当我使用全新的应用程序和休斯顿对其进行测试时,即使我在应用程序切换器github.com/nomad/houston 中明确停止该应用程序后,我也可以收到通知跨度>
猜你喜欢
  • 2017-01-09
  • 1970-01-01
  • 2016-03-25
  • 1970-01-01
  • 2018-06-30
  • 2017-03-28
  • 1970-01-01
  • 2016-09-30
  • 2015-05-30
相关资源
最近更新 更多