菜鸟教程小白 发表于 2022-12-13 05:36:59

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


                                            <p><p>我一直在测试自 iOS 7 以来可用的静默通知功能。</p>

<p>我的应用程序面向 iOS 7 和 UP。</p>

<p>我正在 iPhone6 设备上进行测试。</p>

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

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

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

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

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

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

<ol>
<li> <a href="https://stackoverflow.com/questions/28239414/ios-8-silent-push-notification-not-working-without-xcode" rel="noreferrer noopener nofollow">IOS 8 Silent push notification not working without Xcode</a> </li>
<li> <a href="https://stackoverflow.com/questions/27582529/ios-silent-push-notification-only-works-when-connected-to-xcode" rel="noreferrer noopener nofollow">iOS silent push notification only works when connected to xcode</a> </li>
</ol>

<p>我也将“优先级”标签添加到我的 JSON 有效负载中......但仍然没有运气。</p>

<p>这是我的有效载荷:</p>

<p><code>$body['aps'] = array(
    '内容可用' => 1,
    '警报' => $消息,
    '优先级' => 10,
    '声音' => '默认'
);</code></p>

<p>我什至尝试过所有小写的“优先级”。 </p>

<p>我的手机确实收到警报并发出声音。但是,如果用户选择“应用程序图标”而不是横幅警报 - 它不会收到静默通知。这只发生在我的应用程序未连接并从 Xcode 运行时。</p>

<p>另外,我正在使用开发者证书和配置文件。</p>

<p><strong>更新 1:</strong></p>

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

<p>我从有效负载中删除了“优先级”,并将二进制通知配置为命令 2。</p>

<p>见:<a href="https://developer.apple.com/library/mac/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html" rel="noreferrer noopener nofollow">https://developer.apple.com/library/mac/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html</a> </p>

<p>用 Xcode 测试。一切正常。在没有 Xcode 的情况下进行了测试。还是同样的问题。 =( </p>

<p><strong>更新 2</strong></p>

<p>我在 iPhone 4 设备上测试了该应用程序。无论是否使用 Xcode,静默通知都可以使用。因此,这一定是 iOS 8 设备的严格问题。 </p>

<p>更新标题以仅反射(reflect) iOS 8。我不确定如何为 iOS 8 设备解决此问题。有人有什么建议吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>好的,所以我终于解决了为什么静默通知在 iOS 8 设备上不起作用。</p>

<p>在您从 PHP 脚本发送的二进制通知中,优先级必须设置为 5。当您不从 Xcode 运行应用程序时,它不适用于 10。</p>

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

<p>查看:<a href="https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html" rel="noreferrer noopener nofollow">https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - iOS 8 设备上没有 Xcode 的静默通知问题,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/28835056/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/28835056/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - iOS 8 设备上没有 Xcode 的静默通知问题