iOS 7 远程通知后台模式
Posted
技术标签:
【中文标题】iOS 7 远程通知后台模式【英文标题】:iOS 7 remote notification background mode 【发布时间】:2014-02-07 15:59:05 【问题描述】:我真的对这个问题感到困惑,我的问题很简单:application: didReceiveRemoteNotification: fetchCompletionHandler:
什么时候会被调用?
如果应用程序正在运行并且在前台?我测试了,ios 7 的响应是 yes,iOS 6 的响应是 no,如函数注释中所述。
如果应用程序在后台运行?响应:同 1。
如果应用程序在后台但被系统挂起?
最重要的一点:如果应用程序被终止(不在“多任务视图”中)?
我如何激活/处理通知:
-
在 xcode 功能部分(在 info.plist 中)添加远程主题。
要求注册:
[[UIApplication sharedApplication] registerForRemoteNotificationTypes: UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeNewsstandContentAvailability]
3 .实现委托方法。 (在completionHandler(UIBackgroundFetchResultNewData);
里面加)
当我发送通知时(使用内容可用键==1):
-
如果应用程序处于前台/后台并触发该功能运行并执行内部代码(我下载图像并将其保存在文档文件夹中)。
如果应用被杀死,图像不会被下载。
第二个问题:为什么要调试远程通知后台模式?
[edit]
测试后,如果应用程序被挂起(我们添加一个循环来记录日期)它会收到通知并尝试触发代码,但应用程序在 1 秒后停止,我们是否错过了一个包含持续时间的参数? (我读到的最大值是 30 秒)。
【问题讨论】:
阅读您的问题有点困难,因为您在该帖子中嵌套了许多其他问题。有没有办法可以简化这个 你可以阅读这个samwize.com/2015/08/07/… 【参考方案1】:很抱歉回答我自己的问题, 简单来说,远程通知仅在应用程序处于后台(活动/暂停)时处理。
[编辑]:如果您想要一个推送通知来唤醒应用程序,即使它被杀死,请查看 PushKit,但这只有在您的应用程序中具有 VOiP 功能时才有可能。
【讨论】:
以上是关于iOS 7 远程通知后台模式的主要内容,如果未能解决你的问题,请参考以下文章