iOS 8设备上没有Xcode的无声通知问题



我一直在测试自iOS7以来可用的静默通知功能。

我的应用程序针对iOS 7和UP。

我正在iPhone 6设备上进行测试。

当我的iPhone连接到电脑时,我的应用程序中的一切似乎都很好;Xcode正在运行应用程序。所有的静默通知都能100%工作,它们也会显示在我的应用程序中。

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

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

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

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

发现了这些(但它们并没有帮助我解决问题):

  1. IOS 8无声推送通知在没有Xcode的情况下无法工作
  2. iOS静默推送通知仅在连接到xcode时有效

我也在JSON负载中添加了"优先级"标记。。。但仍然没有运气。

这是我的有效载荷:

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

我甚至尝试过所有小写的"优先级"。

我的手机确实收到警报并发出声音。但是,如果用户选择"应用程序图标"而不是横幅警报,则不会收到无声通知。只有当我的应用程序没有连接并从Xcode运行时才会发生这种情况。

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

更新1:

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

我从有效负载中删除了"优先级",并将二进制通知配置为命令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设备修复此问题。有人有什么建议吗?

好的,所以我终于解决了为什么静默通知在iOS 8设备上不起作用。

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

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

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

最新更新