菜鸟教程小白 发表于 2022-12-12 22:50:42

iOS 警报行为与相同的 APNS 消息不一致


                                            <p><p>这里是服务器端的人。 </p>

<p>我将完全相同的 APNS 有效负载发送到同一台设备,但我看到了不同的结果:</p>

<ol>
<li>手机亮起,显示提醒</li>
<li>手机亮了,没有提示</li>
</ol>

<p>据我所知,这是随机的。有时手机会显示警报,有时不会。但在所有情况下,APNS 消息都是相同的。</p>

<p>这两种情况都会随机发生。尽管我很努力,但我无法重现模式。</p>

<p>APNS 有效负载在两种情况下看起来都一样:</p>

<pre><code>{
&#34;aps&#34;: {
    &#34;alert&#34;: &#34;Blah Blah Blah something useful happened&#34;,
    &#34;badge&#34;: 0
}
}
</code></pre>

<p>我想弄清楚的是,问题出在哪里?这是 iOS 客户端问题还是服务器端问题?</p>

<p>到目前为止,我已经能够通过以下推送服务重现该问题:</p>

<ul>
<li>亚马逊社交网络</li>
<li> Urban Airship </li>
<li>解析</li>
<li>PushSharp</li>
</ul>

<p>iOS 是否会处理我不知道的通知?这是 APNS 问题吗?有效载荷包搞砸了吗?还是应用问题? </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>好的,我找到了答案。 </p>

<p>如果目标设备的标记计数大于 0,并且发送标记计数为 0 的通知,iOS 将清除应用程序的所有通知。这会导致屏幕上快速闪烁而没有显示通知。 </p>

<p>要重现,请将其发送到设备以增加角标(Badge)计数:</p>

<pre><code>{
&#34;aps&#34;: {
    &#34;alert&#34;: &#34;this notif will show up&#34;,
    &#34;badge&#34;: 2
}
}
</code></pre>

<p>然后,发送这个payload,notif就不会出现了:</p>

<pre><code>{
&#34;aps&#34;: {
    &#34;alert&#34;: &#34;this notif will not show up&#34;,
    &#34;badge&#34;: 0
}
}
</code></pre>

<p>Apple 在其关于角标(Badge)的文档中有一条简短的语句,“要移除角标(Badge),请将此属性的值设置为 0。”这不仅仅删除了标记,还阻止了发送通知的显示,并清除了之前可能仍未读取的任何通知。 </p>

<p> <a href="https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW1" rel="noreferrer noopener nofollow">https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW1</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS 警报行为与相同的 APNS 消息不一致,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/24092380/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/24092380/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS 警报行为与相同的 APNS 消息不一致