在iOS 8设备上没有Xcode的静默通知问题
我一直在测试自iOS 7以来可用的静音通知function。
我的应用程序是针对iOS 7和UP。
我在iPhone6设备上进行测试。
当我的iPhone连接到计算机并且Xcode正在运行应用程序时,我的应用程序中的一切似乎都很好用。 所有静默通知都可以100%运行,并且它们也会显示在我的应用程序中。
但是,如果我停止Xcode并发送静默通知 – 我的设备根本不会收到静音通知。
我做了很多研究,但没有给我答案也没有帮助我确定发生了什么。
我没有杀死我的申请。 所以,这不是问题。 您仍然可以在应用切换器中看到该应用程序。
我的应用程序确实收到定期推送通知(有和没有Xcode)。 问题在于无声通知。
发现这些(但他们没有帮我解决问题):
- IOS 8静音推送通知在没有Xcode的情况下无法正常工作
- 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