在iOS 8设备上没有Xcode的静默通知问题

时间:2015-03-03 15:02:00

标签: ios xcode apple-push-notifications

我一直在测试自iOS 7以来可用的静音通知功能。

我的应用程序的目标是iOS 7和UP。

我正在测试iPhone6设备。

当我的iPhone连接到计算机时,一切似乎在我的应用程序中运行良好。 Xcode正在运行该应用程序。所有静默通知都可以100%运行,并且它们也会显示在我的应用程序中。

然而,如果我停止Xcode&发送无声通知 - 我的设备根本没有收到无声通知。

我做了很多研究,但没有给我答案,也没有帮助我确定发生了什么。

我没有杀死我的申请。所以,这不是问题。您仍然可以在应用切换器中看到该应用程序。

我的应用程序确实收到定期推送通知(有和没有Xcode)。问题在于无声通知。

找到这些(但他们没有帮我解决问题):

  1. IOS 8 Silent push notification not working without Xcode
  2. iOS silent push notification only works when connected to xcode
  3. 我已将“优先级”标记添加到我的JSON有效负载中......但仍然没有运气。

    这是我的有效负载:

    $body['aps'] = array( 'content-available' => 1, 'alert' => $message, 'Priority' => 10, 'sound' => 'default' );

    我甚至尝试过“低优先级”。

    我的手机确实收到警报并发出声音。但是,如果用户选择“应用程序图标”而不是横幅提醒 - 它不会收到无提示通知。仅当我的应用程序未连接并从Xcode运行时才会发生这种情况。

    此外,我使用的是开发人员证书和配置文件。

    更新1:

    发现优先级设置应该是二进制通知的一部分,而不是APNS有效负载。

    我从有效负载中删除了“priority”,并将二进制通知配置为Command 2.

    请参阅:https://developer.apple.com/library/mac/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html

    使用Xcode进行测试。一切正常。没有Xcode测试。还是同样的问题。 =(

    更新2

    我在iPhone 4设备上测试了该应用程序。无声通知可以使用或不使用Xcode。因此,这必须是iOS 8设备的严格问题。

    更新标题仅反映iOS 8.我不知道如何解决iOS 8设备的问题。有人有什么建议吗?

1 个答案:

答案 0 :(得分:1)

好的,所以我终于解决了为什么无声通知无法在iOS 8设备上运行。

在您从PHP脚本发送的二进制通知中,优先级必须设置为5.当您不从Xcode运行应用程序时,它将无法与10一起使用。

我不知道为什么应用程序在从Xcode运行时使用了10 - 这就是为什么很难确定出错的原因。我也不知道为什么优先级为10适用于iOS 7设备。

参见:https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html