[英]How does Amazon SNS disable/re-enable devices when notifications are changed in iOS Settings?
我在基於Swift的iOS應用程序中將Amazon SNS用於移動推送通知和AWS開發工具包。 一切正常,但是當我從iOS設置禁用通知,然后在“設置”中的應用程序條目下關閉通知時,我注意到一些奇怪的行為。 如果我關閉通知,則AWS SNS控制台上的enabled標志仍設置為true 。
在某些情況下,enabled標志將正確翻轉為false 。 在這些情況下,當我嘗試在iOS設置中重新啟用通知時,enabled標志將永遠不會翻轉回true 。 知道為什么會這樣嗎? 無論如何,要使它實時地適當設置嗎?
提前致謝。
Amazon SNS與設備之間沒有交互,SNS僅與平台提供商(GCM,APNS,百度,WMS等)交互。
出於多種原因,端點可能在Amazon SNS中被禁用:
設備令牌已更改,您尚未使用新令牌更新端點。 在這種情況下,推送通知將失敗到此設備,因為當前端點令牌無效。 根據APNS反饋,端點將設置為DISABLED。 在以下情況下,設備令牌可以更改:
此處的建議是通過將新獲得的令牌與保存在NSUserDefaults存儲中的令牌進行匹配,以驗證應用程序在啟動時進行的令牌更改;如果有所不同,請在更新SNS端點后在本地對其進行更新。
這可能是為什么當您在設備設置中重新啟用通知時,“ enabled flag將永遠不會翻轉回true ”的原因。
設備所有者已刪除該應用程序,並且在未安裝該應用程序時,SNS通知將發送到該設備。 此時,APNS提供無效令牌的反饋,並且端點被SNS禁用。 由於禁用端點的APNS回調的異步特性,這最多可能需要24小時。
SNS通知使用未為應用程序或環境生成的令牌發送到端點。 例如,端點是手動生成的,並且是64個長度的有效十六進制字符的隨機組合。
如果將帶有用於應用程序的SANDBOX(APNS_SANBOX)環境的有效令牌的SNS通知無意中發送到PRODUCTION(APNS)環境。 在這種情況下,SNS接受令牌,但在第一個推送通知中失敗,並且基於APNS反饋將禁用端點。
Rohan分享的博客文章是移動令牌管理的重要資源。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.