【发布时间】:2018-12-20 12:01:25
【问题描述】:
我想知道当应用程序从后台终止时,WhatsApp 如何处理视频推送通知。考虑到点击的是应用图标而不是通知。
1- 推送通知每 5 秒显示一次
2- 尽管应用会持续显示推送通知约 30 秒,但铃声会播放一次。
【问题讨论】:
标签: ios apple-push-notifications whatsapp
我想知道当应用程序从后台终止时,WhatsApp 如何处理视频推送通知。考虑到点击的是应用图标而不是通知。
1- 推送通知每 5 秒显示一次
2- 尽管应用会持续显示推送通知约 30 秒,但铃声会播放一次。
【问题讨论】:
标签: ios apple-push-notifications whatsapp
当app处于killed状态时,不会调用didReceiveRemoteNotification方法。然后点击通知应用程序(_:didFinishLaunchingWithOptions)方法将被调用。如果通过点击通知启动应用程序,则 launchOption 包含有效负载。为此在此方法中编写给定的代码:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
if launchOptions != nil{
let userInfo = launchOptions?
[UIApplicationLaunchOptionsKey.remoteNotification]
if userInfo != nil {
// Perform action here
}
}
您的所有有效负载数据都将在 launchOptions?[UIApplicationLaunchOptionsKey.remoteNotification] 中可用并从那里执行您的应用逻辑(导航..)。
请参阅this link 以了解有效的推送通知处理
【讨论】:
您可以使用 iOS VoIP 推送通知来做到这一点。 VoIP 推送使应用程序即使在后台也可以激活并被用户强行杀死。所有语音和视频通话应用都使用此优先推送服务。
这里很棒Apple guide about Voice Over IP (VoIP) Best Practices。主要用例之一 - 使用 VoIP 推送通知来避免持久连接。
要使用 VoIP 推送,您必须连接 iOS PushKit framework。您可以config your own server 或其他第三方提供商。
【讨论】: