簡體   English   中英

天藍色通知中心-應用程序卸載

[英]azure notification hubs - app uninstall

我想使用Azure通知中心將推送通知發送給在iOS,Android和Windows Phone上運行的我的應用程序的用戶。

我已經設法使基礎工作正常,但是我不知道如何管理App卸載故事。

啟動時,移動應用程序將調用我的Identity Svc以獲取身份驗證令牌。 然后,它調用其平台通知服務(例如Google Cloud Messaging,APNS)以獲取PNS令牌。 將令牌持久保存到本地存儲后,它將調用后端Contact Svc來注冊客戶的設備。 此服務將為設備創建對Azure通知中心的訂閱。

如下圖所示:

在此處輸入圖片說明

稍后,后端發布服務將呼叫聯系服務,以請求針對特定用戶ID的推送通知。 聯系服務將在通知中心上查找分配給標簽的ID,並發送推送請求。

有哪些選項可用來確定客戶何時卸載應用程序? 在通知中心上調用“發送”時,是否只是捕獲錯誤的問題? 我猜想,如果僅發送給單個用戶,這可能會起作用,但是我的目的是將某些消息類型發布給多個訂戶。 在設備的初始注冊中,將為用戶ID的標簽創建訂閱,還會為更通用的標簽(例如“新促銷”)創建訂閱。 發布服務以后會希望向所有設備發出“新促銷”通知。

為什么您需要知道應用程序卸載?

通知中心會自動使已卸載設備的注冊過期。 另外,我將避免完全保留PNSHandles在您的服務中。

當前使用集線器的准則如下:

將與設備關聯的注冊的registrationIds存儲在本地存儲中。 這使您可以通過一個更新調用來更新標簽和頻道信息。 因為移動連接並不總是可靠的,所以最好避免創建新的注冊,而又不能將registrationId存儲在本地存儲中。 這可能導致設備多次注冊,從而導致重復的通知。 您可以通過使用創建注冊ID以及創建或更新注冊REST API來實現。 第一個API在不實際創建注冊的情況下返回registrationId。 當ID已安全地存儲在設備存儲中后,設備可以調用Create或Update Registration API。

因此,我會讓您的ContactSvc公開兩個功能:a)創建注冊ID(只需調用集線器即可獲取它)b)創建或更新給定的注冊(registrationId,pnsHandle,標簽?)

然后,您的設備會在從PNS獲取句柄之后將regId保存在其存儲中,如果regId不存在,則會在端點a)中創建一個新的regId,然后使用pnsHandle和標簽更新注冊。

請注意,通過這種方式,您的服務不需要持久化句柄或UUID,也無需擔心應用程序卸載。

如果您要跟蹤用戶,則一種方法是定期(一個月一次?)檢查集線器中的注冊是否仍然存在...

如果不清楚,您可以通過@eliodamaggio與我聯系。

暫無
暫無

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

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