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 远程通知后台模式的主要内容,如果未能解决你的问题,请参考以下文章

在后台模式下接收远程推送通知是不是可以多次振动?

IOS 远程通知在 IOS 8 的后台不起作用

远程通知到达时哪个代表首先调用,而我的应用程序处于终止模式(不在后台)

解析远程通知和时区

AVPlayer 从 iOS 7 后台通知播放音频

当 iOS 在后台并收到远程通知时发送数据到 Watch