4

据我所知,application:didReceiveRemoteNotification:fetchCompletionHandler:当用户通过多任务 UI 杀死应用程序时,不会调用静默推送通知。但是在查看 WhatsApp 的行为时,我不明白他们是如何做到以下几点的:

  • 使频道静音
  • 强制退出 WhatsApp
  • 在静音频道接收消息
  • 显示徽章
  • 更令人惊讶的是=>
  • 不启动 WhatsApp,启动飞行模式
  • 现在启动 WhatsApp => 文本显示在正确的位置

这意味着尽管应用程序被杀死,WhatsApp 以某种方式管理它来处理推送通知的接收。有谁知道怎么做?与.badge, .alert, ...?

4

1 回答 1

0

还有其他方法可以更新您的应用程序。另一种方法是使用后台应用程序刷新。后台应用刷新让您的应用定期在后台运行,以便更新其内容。

-- 编辑以添加其他可能的方法:--

在应用程序被杀死后可以在短时间内(固定长度时间)使用的另一种方法是询问后台执行时间。这可以给应用程序更多的运行时间。

对于需要更多执行时间来实现的任务,您必须请求特定权限才能在后台运行它们而不会被挂起。在 iOS 中,只允许特定的应用类型在后台运行。例如,支持互联网协议语音 (VoIP) 的应用程序或充当蓝牙 LE 附件的应用程序。

--编辑#2 --

从 WhatsApp 应用程序的 info.plist 看来,它使用多个 UIBackgroundModes,它们中的任何一个都可用于在后台唤醒/保持应用程序。

WhatsApp 的 info.plist 的一部分:

<key>UIBackgroundModes</key>
<array>
    <string>audio</string>
    <string>fetch</string>
    <string>remote-notification</string>
    <string>voip</string>
</array>
于 2018-09-24T14:53:32.590 回答