我一直在测试自iOS 7以来可用的静音通知功能。
我的应用程序的目标是iOS 7和UP。
我正在测试iPhone6设备。
当我的iPhone连接到计算机时,一切似乎在我的应用程序中运行良好。 Xcode正在运行该应用程序。所有静默通知都可以100%运行,并且它们也会显示在我的应用程序中。
然而,如果我停止Xcode&发送无声通知 - 我的设备根本没有收到无声通知。
我做了很多研究,但没有给我答案,也没有帮助我确定发生了什么。
我没有杀死我的申请。所以,这不是问题。您仍然可以在应用切换器中看到该应用程序。
我的应用程序确实收到定期推送通知(有和没有Xcode)。问题在于无声通知。
找到这些(但他们没有帮我解决问题):
我已将“优先级”标记添加到我的JSON有效负载中......但仍然没有运气。
这是我的有效负载:
$body['aps'] = array(
'content-available' => 1,
'alert' => $message,
'Priority' => 10,
'sound' => 'default'
);
我甚至尝试过“低优先级”。
我的手机确实收到警报并发出声音。但是,如果用户选择“应用程序图标”而不是横幅提醒 - 它不会收到无提示通知。仅当我的应用程序未连接并从Xcode运行时才会发生这种情况。
此外,我使用的是开发人员证书和配置文件。
更新1:
发现优先级设置应该是二进制通知的一部分,而不是APNS有效负载。
我从有效负载中删除了“priority”,并将二进制通知配置为Command 2.
使用Xcode进行测试。一切正常。没有Xcode测试。还是同样的问题。 =(
更新2
我在iPhone 4设备上测试了该应用程序。无声通知可以使用或不使用Xcode。因此,这必须是iOS 8设备的严格问题。
更新标题仅反映iOS 8.我不知道如何解决iOS 8设备的问题。有人有什么建议吗?
答案 0 :(得分:1)
好的,所以我终于解决了为什么无声通知无法在iOS 8设备上运行。
在您从PHP脚本发送的二进制通知中,优先级必须设置为5.当您不从Xcode运行应用程序时,它将无法与10一起使用。
我不知道为什么应用程序在从Xcode运行时使用了10 - 这就是为什么很难确定出错的原因。我也不知道为什么优先级为10适用于iOS 7设备。