簡體   English   中英

推送通知:將設備令牌與設備相關聯

[英]Push Notifications: Associating a device token with a device

發生這種情況時,我的應用當前正在接收與上一個應用用戶帳戶相關聯的推送通知:

  1. 播放器安裝應用並注冊為“ bob”
  2. bob的設備令牌已在Web服務中注冊
  3. 播放器重新安裝了應用並注冊為“ phil”(在同一設備上)
  4. phil的設備令牌已通過Web服務注冊

即使玩家現在以“ phil”身份登錄,他們仍將繼續收到與“ bob”以及“ phil”相關聯的帳戶的推送通知。

如果我使用的是UDID,則可以確保每個設備僅注冊一個設備令牌,因此可以從播放器的舊Web服務帳戶“ bob”中刪除UDID和設備令牌,從而確保每個設備僅一個活動帳戶。 當玩家注冊為“ phil”並且網絡服務器可以看到玩家已使用相同的UDID注冊了一個新帳戶,然后從任何具有該UDID的舊帳戶中刪除UDID和設備令牌(即“ bob”)時,就會發生這種情況帳戶)。 除非有人再次登錄該帳戶(在同一設備上,或在另一台設備上),否則不會將任何推送通知發送到bob帳戶。

但是,這在使用CFUDIDCreate時效果不佳,因為安裝之間可能會發生變化。

如何確保僅收到當前登錄用戶的推送通知? 或者,換句話說,如何確保我的Web服務器每個設備僅存儲一個設備令牌?

您可以將APNS令牌設為關鍵服務器端,而不是設備特定的標識符。 重新安裝應用程序時,您將現有記錄(APNS令牌,“ bob”)替換為(APNS令牌,“ phil”),從而在重新安裝應用程序時刪除了令牌和bob帳戶之間的鏈接。

據我所知,APNS令牌在重新安裝應用程序之間不會更改,因此應該可以使用。 (如果確實在將來的iOS版本中的重新安裝之間進行了更改,這將不是問題,因為舊令牌將不再有效,因此該設備將不會收到發送給bob的通知)。

在重新安裝應用程序的情況下,生成的設備令牌是否與以前相同? 我覺得不行。 您在服務器上注冊了兩個不同的設備令牌,一個用於“ bob”,另一個用於“ phil”?

在這種情況下,令牌指向'bob'是無效的,您可以使用APNS反饋服務對其進行過濾,該服務會不斷更新,“使用按應用程序列出的嘗試交付失敗的設備列表。提供商應以二進制格式編碼的設備令牌來標識。提供商應定期查詢反饋服務,以獲取其應用程序的設備令牌列表,每個設備令牌均由其主題標識。然后,在確認最近未重新使用該應用程序后,在已標識的設備上注冊后,提供商應停止向這些設備發送通知。”

祝好運!

在iOS 9.x之后,設備令牌在每次安裝該應用程序時始終是唯一的。 您可以將UUId令牌保存到鑰匙串。 即使重新安裝應用程序,鑰匙串也始終持有令牌。 您可以在此處找到鑰匙串文檔

暫無
暫無

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

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