簡體   English   中英

為什么每次用戶啟動應用時都會注冊推送通知?

[英]Why registering for push notifications every time a user launch an app?

在Apple文檔中,您可以找到以下句子:

應用程序應在每次啟動時進行注冊,並為其提供者提供當前令牌。 它調用registerForRemoteNotificationTypes:啟動注冊過程。

因此,當我在我的應用程序中實現推送通知時,我必須注冊該設備,並且我按照他們在該文檔中所說的做了:每次用戶啟動我的應用程序時都會注冊。 我從APNS收到的令牌對於給定用戶始終是相同的。

我的問題是:如果APNS給我總是相同的令牌,我為什么每次都需要注冊?

如果用戶刷了他的iPhone或應用程序,我讀到的地方可能會改變。 這是唯一的案例嗎?

謝謝 !

我從APNS收到的令牌對於給定用戶始終是相同的。

除非它不是,基本上是因為沒有什么可以掛在iPhone設置中的“用戶”。 每個設備的每個應用程序的設備令牌始終相同。 因此,同一設備上的不同應用程序會獲得不同的令牌。 兩個不同設備上的相同應用程序獲得兩個不同的令牌。

需要注意的重要一點是,APNS指南中提到的是,用戶可以備份他們的應用程序,設置和所有內容。 然后他們可以把手機放下馬桶。 當他們獲得更換手機時,他們可以將備份恢復到新手機上。 賓果游戲 - 相同的應用程序,相同的用戶,不同的設備和不同的令牌

至於你的應用程序,自上次運行以來沒有任何變化 - 它現在不知道它實際上在不同的設備上運行。 它知道的唯一方法是因為它要求“當前”設備令牌,並且它是前一個不同的令牌。

您可以選擇緩存令牌並根據您剛收到的令牌進行檢查(例如將其保存在您的NSUserDefaults中) - 這樣您就不必將其傳回服務器,除非它自上次運行后已經更改,但您絕對必須檢查,否則你的用戶會抱怨他們更換手機后不再收到推送通知。

暫無
暫無

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

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