ios - iOS 8 设备上没有 Xcode 的无提示通知问题

标签 ios xcode apple-push-notifications

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

我的应用程序面向 iOS 7 和 UP。

我正在 iPhone6 设备上进行测试。

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

但是,如果我停止 Xcode 并发送静默通知——我的设备根本不会收到静默通知。

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

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

我的应用程序确实会收到定期推送通知(使用和不使用 Xcode)。问题在于静默通知。

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

  • IOS 8 Silent push notification not working without Xcode
  • iOS silent push notification only works when connected to 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 设备上测试了该应用程序。 Silent Notifications 可以使用或不使用 Xcode。所以,这一定是 iOS 8 设备的问题。

    更新标题以仅反射(reflect) 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

    关于ios - iOS 8 设备上没有 Xcode 的无提示通知问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28835056/

    相关文章:

    ios - 推送服务证书未出现在 "My Certificates"

    ios - Swift:如何将字符串列表转换为 CGPoint 列表?

    xcode - 我有 30 个注释,并且还在增长。寻找一种更简单的编码方式?

    ios - 如何使用 xcassets 构建框架

    ios - iOS应用程序开关CFBundleVersion和CFBundleShortVersionString

    ios - 如何在 React Native 0.60.0 和 react-native-carplay 之间进行配置?

    ios - 推送权利未出现在分发配置文件中

    ios - IOS 9 中的 Apple 推送通知

    ios - RestKit 请求因 HTTP 错误而挂起

    iOS 音频文件无法在桌面网络浏览器中播放