簡體   English   中英

iOS推送通知-設備令牌管理

[英]iOS Push Notifications - device token management

我正在向應用程序添加推送通知,並且我知道我需要將設備令牌存儲在數據庫中,以便可以將推送通知發送到特定設備(或所有設備)。

我的問題是維護這些設備令牌的最佳實踐是什么? 我可以存儲所有收到的設備令牌,但是如何檢測和刪除不再有效的舊設備令牌? 我假設如果用戶刪除該應用程序,或者如果用戶關閉該應用程序的通知,則設備令牌可能變得無效。

更新-具有用戶身份驗證並將其鏈接到設備令牌(以及基於登錄/注銷進行更新)很有意義。 但是,如果用戶刪除該應用程序怎么辦? 沒有注銷,那么您如何刪除設備令牌?

Apple反饋服務已不再使用。 相反,我們必須從Apple推送通知服務中查找401的響應狀態,以確定令牌無效。

在開發環境中進行測試。 請使用以下技巧(它說這是用於反饋服務,但也應與APNS的新狀態代碼一起使用)

如何測試Apple Push Notifications反饋服務?

使用APNS反饋服務來查找屬於已卸載應用程序的設備令牌。 請參閱此蘋果文檔

如果將Amazon SNS之類的東西用於推送通知,則可以使用其API獲取禁用的arn列表,並從數據庫中刪除相應的設備令牌。

制作一個將特定設備的用戶設備令牌存儲在數據庫中的Web服務。 僅當用戶已登錄或您已根據需要標識用戶時才調用此Web服務。 當設備成功注冊以進行通知時,如果用戶無法識別(即未登錄),則需要調用此Web服務,然后在登錄api后調用此服務。

在登錄時,還可以通過傳遞設備令牌並注冊API(如果您可以根據自己的流程),並為特定用戶替換設備令牌。

當用戶注銷時,只需取消注冊即可獲得通知

如您在上一個聲明中所說, 我假設如果用戶刪除該應用程序或關閉該應用程序的通知,則設備令牌可能會失效。

一般情況是,當用戶再次登錄到應用程序或注冊到應用程序時,您需要再次從用戶那里獲取設備令牌並將其存儲在數據庫中

假設我有一個應用程序,並且在那個時候再次安裝該應用程序時,我只安裝了那個應用程序,那時api必須具有deviceID參數,因此,每當發生api調用進行登錄時,新的設備令牌就會在您的數據庫中通過只是替換舊的。 使用該應用程序進行新注冊也會發生同樣的事情。

希望以上描述對您有所幫助。 :)

您的應用服務器不會知道某個特定應用是否已被強制刪除,並且您的服務器仍將令牌T1映射到已刪除的應用/設備,例如A1。 現在,另一個有效用戶(A2)可能會拿出相同的設備令牌T1。 您只需要確保在任何時間點將一個設備令牌(即T1)映射到僅一個設備(提供最新T1的設備)。 此時將刪除所有其他較舊的設備令牌映射,即A1-T1,否則A2可能會收到A1的通知。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM