【问题标题】:UIBackgroundMode remote-notification doesn't work on iOS 7.1UIBackgroundMode 远程通知在 iOS 7.1 上不起作用
【发布时间】:2014-06-03 23:11:00
【问题描述】:

iOS 7.1 上的 remote-notification 后台模式有问题。我在 Radar (http://openradar.appspot.com/radar?id=5279828798341120) 上提交了一个错误,为方便起见,我在下面复制了该错误。

还有其他人遇到这个问题吗?有什么关于 Apple 的消息吗?


总结

发送带有 content-available 标签的推送通知应该会在后台唤醒应用程序并调用 application:didReceiveRemoteNotification:fetchCompletionHandler。它适用于 iOS 7.0.6,但不适用于 iOS 7.1.1。

复制步骤

  1. 创建一个空的 iOS 应用程序项目。启动它应该会显示一个纯白色的视图。
  2. 在应用启动时请求推送权限,并在控制台中打印推送令牌。
  3. 在目标设置(功能 -> 后台模式)中启用远程通知
  4. 在 AppDelegate 中,实现 application:didReceiveRemoteNotification:fetchCompletionHandler。使其将窗口的背景颜色更改为红色和 NSLog("Application did receive remote notification")。
  5. 从 Xcode 运行应用程序(产品 -> 运行)。
  6. 从 Xcode 关闭应用程序(产品 -> 停止)。
  7. 双击主页按钮:应用的多任务屏幕截图显示纯白色视图。
  8. 使用诸如 nomad-cli (http://nomad-cli.com/) 之类的程序,使用“content-available”标签(选项 -n 和 nomad-cli)向您的设备发送推送通知:推送通知应该出现在主页上屏幕。
  9. 双击主页按钮并检查多任务屏幕截图的颜色。

预期结果

如果应用在后台启动并调用了 application:didReceiveRemoteNotification:fetchCompletionHandler,则多任务屏幕截图应为红色。此外,Xcode Organizer 中的控制台日志应该显示应用程序确实收到了远程通知

实际结果

在 iOS 7.0.6 上,多任务截图确实是红色的。此外,Xcode Organizer 中的控制台日志显示以下日志:

May 30 16:50:14 iPad kernel[0] <Debug>: launchd[266] Container: /private/var/mobile/Applications/47E7DA84-E83A-4B43-B550-7D203921BD49 (sandbox)
May 30 16:50:14 iPad Test[266] <Warning>: Application did receive remote notification

在 iOS 7.1.1 上,多任务屏幕截图保持白色,Xcode Organizer 中的控制台日志不显示任何内容。

版本

iPhone 5:iOS 7.1.1 [11D201]。 iPad 2:iOS 7.0.6 [11B651]。

配置

iPhone 5 32GB AT&T,使用 WiFi。 iPad 2 16GB,使用 WiFi。

【问题讨论】:

    标签: ios cocoa-touch push-notification ios7.1


    【解决方案1】:

    这是一个误报。我用于测试的其中一台设备在设置(设置->常规->后台应用刷新)中禁用了后台获取。我正在关闭这个问题。

    【讨论】:

    • 嗨@Alexis。禁用“后台应用刷新”也会禁用后台推送通知获取功能?
    • 确实,这是我的经验。
    猜你喜欢
    • 2016-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    相关资源
    最近更新 更多