当应用程序处于非运行状态时,推送通知委托触发的解决方案是啥?
Posted
技术标签:
【中文标题】当应用程序处于非运行状态时,推送通知委托触发的解决方案是啥?【英文标题】:What is the solution for push notification delegate to fire when app is in not running state?当应用程序处于非运行状态时,推送通知委托触发的解决方案是什么? 【发布时间】:2016-02-08 08:27:39 【问题描述】:如果应用程序未在运行状态而不点击收到的通知,我们如何触发推送通知委托。 1. 收到通知 2.不点击通知 3.点击应用图标启动应用
在这种状态下如何检查是否收到推送通知?
【问题讨论】:
检查静默推送通知。 【参考方案1】:在此处查看评论:
UIApplicationLaunchOptionsRemoteNotificationKey not getting userinfo
在payload中基本设置“content-available”:1,调用application:didReceiveRemoteNotification:fetchCompletionHandler。
【讨论】:
【参考方案2】:有一种方法,您可以使用它来处理您的每个推送通知。将值为 1 的 key content-available 添加到您的 aps 字典中。
它看起来像,
"aps" :
"alert" :
"title" : "Game Request",
"body" : "Bob wants to play poker",
,
"badge" : 5
"content-available" : 1
如果 ios 系统检测到 pushNotification 的“content-available”键值为 1,它会调用你的 appDelegate 的 application:didReceiveRemoteNotification:fetchCompletionHandler:。
苹果 - 讨论
使用此方法处理传入的远程 您的应用程序的通知。不像 application:didReceiveRemoteNotification: 方法,只调用 当您的应用程序在前台运行时,系统会调用它 当您的应用程序在前台或后台运行时的方法。在 此外,如果您启用了远程通知后台模式,则 系统启动您的应用程序(或将其从挂起状态唤醒)和 当远程通知到达时将其置于后台状态。 但是,如果用户使用,系统不会自动启动您的应用 已强制退出。在这种情况下,用户必须重新启动您的应用 或在系统尝试启动您的应用之前重启设备 再次自动。
您需要启用后台模式。
【讨论】:
我已经在使用可用的内容:1 但是如果应用程序不是运行状态,这个委托会触发吗?同样,如果用户不点击通知,则只会触发完成启动选项。 它将唤醒您的应用并执行答案中提到的方法,但iOS无法唤醒被forceQueit退出的应用,即使用slideUp通过按两次home键退出。以上是关于当应用程序处于非运行状态时,推送通知委托触发的解决方案是啥?的主要内容,如果未能解决你的问题,请参考以下文章
如何在应用程序处于非活动状态时获取推送通知ios swift3
当应用程序处于未运行或后台状态时,如何处理推送通知有效负载而不点击它
当应用程序处于非活动状态时,GCM 推送通知不适用于 iOS