【问题标题】:iOS Push Notification When app is killed应用程序被杀死时的iOS推送通知
【发布时间】:2018-12-20 12:01:25
【问题描述】:

我想知道当应用程序从后台终止时,WhatsApp 如何处理视频推送通知。考虑到点击的是应用图标而不是通知。

1- 推送通知每 5 秒显示一次

2- 尽管应用会持续显示推送通知约 30 秒,但铃声会播放一次。

【问题讨论】:

    标签: ios apple-push-notifications whatsapp


    【解决方案1】:

    当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 以了解有效的推送通知处理

    【讨论】:

    • 如果用户单击通知,但如果他单击应用程序图标,则为 true。这种情况不行。
    • 当然是的。当所有者不知道收到通知时,将单击应用程序图标 -> 应用程序将按照标准逻辑打开,而不是基于收到的通知。所有者必须转到必要的页面才能查看更新。
    • 收到推送通知后如何执行一些代码。喜欢通过 FCM 或 APNS 收到被杀 ios 应用的推送通知后用一些数据回复服务器?
    • @Shubham1164 我也很想执行同样的任务。到目前为止你运气好吗?
    【解决方案2】:

    您可以使用 iOS VoIP 推送通知来做到这一点。 VoIP 推送使应用程序即使在后台也可以激活并被用户强行杀死。所有语音和视频通话应用都使用此优先推送服务。

    这里很棒Apple guide about Voice Over IP (VoIP) Best Practices。主要用例之一 - 使用 VoIP 推送通知来避免持久连接。

    要使用 VoIP 推送,您必须连接 iOS PushKit framework。您可以config your own server 或其他第三方提供商。

    【讨论】:

    • 收到推送通知后如何执行一些代码。喜欢通过 FCM 或 APNS 收到被杀 ios 应用的推送通知后用一些数据回复服务器?
    • @Shubham1164 我认为当应用处于终止状态时使用通知与应用交互似乎是不可能的......
    • @Shamim Hossain 你认为 VoIP 推送可以用于其他正常操作而不是音频和视频通话吗?
    • @shaqirsaiyed 不,这应该是不可能的。如果您这样做,您的应用将被拒绝。
    • @ShamimHossain 好的,谢谢,当应用程序处于终止状态时,您认为有什么方法可以与应用程序交互通知吗?它甚至可行吗?
    猜你喜欢
    • 2017-06-07
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    相关资源
    最近更新 更多