【问题标题】:APNS push working in foreground but not backgroundAPNS 推送在前台而不是后台工作
【发布时间】:2015-01-09 19:23:59
【问题描述】:

是否有可能有前台推送进来,但应用在后台时没有收到推送通知?

我有一些用户报告了这个问题,并想知道可能是什么原因。也许这只是混乱?如果其他人有同样的问题,请赐教,如果是,原因是什么。谢谢!

【问题讨论】:

  • 当应用程序在后台时,你真的无法控制发生的事情。当推送进来时,操作系统会先处理推送,然后将数据发送到您的应用进行处理。
  • 是的,这是否意味着理论上不可能有前台推送更新但没有后台推送通知?
  • 我很确定是这样的。几个月前,我尝试在一个项目中做同样的事情,但经过一天的研究后得出的结论是这是不可能的。

标签: ios iphone ios8 apple-push-notifications


【解决方案1】:

也许您可以在推送的有效负载字典中排除警报。这可能会阻止消息显示在您推送到的设备上。但是,您可以使用自定义键在字典中包含一条消息。如果您还没有注册后台获取,那么当应用程序处于后台时,它不应该更新您的应用程序的内容。在您的 App 委托的 didReceiveRemoteNotification 方法中,您可以创建一个 UIAlertView 以通过引用自定义键向用户显示。我想这取决于您在用户收到推送时试图阻止的操作。

【讨论】:

    【解决方案2】:

    从 iOS 7.0 开始,当应用处于后台时,当推送通知到达时,您的UIApplicationDelegate 可以响应一条新消息:除了application: didReceiveRemoteNotification:,现在还有一个方法application: didReceiveRemoteNotification: fetchCompletionHandler:

    仅当应用程序处于前台或用户在锁定屏幕上横向滑动通知时才会调用旧方法。始终调用带有附加 fetchCompletionHandler: 参数的新方法。仔细查看reference,其中描述了有关如何回复此消息的一些重要细节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-15
      • 2021-05-22
      • 1970-01-01
      • 2021-11-14
      • 2013-12-27
      • 1970-01-01
      相关资源
      最近更新 更多