终止后启动带有推送通知的应用程序

Posted

技术标签:

【中文标题】终止后启动带有推送通知的应用程序【英文标题】:Launch an app with push notification after it has been terminated 【发布时间】:2015-08-27 23:02:28 【问题描述】:

我想知道是否有办法唤醒已在 ios8-9 上被用户终止的应用。终止是指双击主页按钮并向上滑动。

是否有可能通过发送静默推送通知来启动应用程序,以便didreceiveremotenotification 被触发并给我一些运行时间?

我注意到有相当一部分用户终止了我的应用。由于我严重依赖后台获取,这是一个问题。我的想法是发送静默推送通知以在后台启动应用程序并触发后台获取。

【问题讨论】:

可能,但苹果不允许。 你找到答案了吗? 【参考方案1】:

简答:不,这是不可能的。

详情:

当服务器上有任何新内容时,您将向您的应用程序发送远程通知以通知该内容。 (远程通知实际上只是设置了content-available 标志的普通推送通知)

当应用程序收到此远程通知时,它会调用以下方法:

- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))handler

在该方法的文档中清楚地写着:

但是,如果用户 已强制退出它。在这种情况下,用户必须重新启动您的应用 或在系统尝试启动您的应用程序之前重新启动设备 自动再次。

参考:

objc.io: Remote Notifications Apple Doc about application:didReceiveRemoteNotification:fetchCompletionHandler:

【讨论】:

当用户“强制退出”应用程序时我可以忽略。当设备启动或用户刷出应用程序时会发生什么(这不是强制退出,而是彻底关闭)?并且有内容可用的通知到达?我的应用会自动打开并调用吗?

以上是关于终止后启动带有推送通知的应用程序的主要内容,如果未能解决你的问题,请参考以下文章

ios推送通知终止应用程序

检测应用程序是不是通过单击应用程序图标或推送通知启动(当应用程序被用户强制终止时)

当应用程序被终止状态时,点击推送通知后无法导航到 ViewController

在关闭的应用程序上未收到推送通知

在应用启动时获取推送通知详细信息

Android GCM:通知关闭后重复推送