2016-02-14 47 views
8

有沒有任何方法可以根據需要獲取設備令牌以進行按需響應,並且反應原生?看起來,從文檔中,像令牌暴露的唯一時間在PushNotification註冊事件上。獲取具有反應本機的設備令牌

更一般地說,處理設備令牌的常見做法是什麼?

如果一個用戶登錄到我的應用程序,應用程序從PushNotification請求權限,則會觸發註冊事件,並且我可以將該設備與登錄的用戶相關聯。到目前爲止這樣好,但如果該用戶註銷,並且我打破該關聯以停止通知,那麼當另一個用戶登錄時該怎麼辦?該應用程序已擁有權限,因此註冊不會再次觸發。如何獲取設備令牌以將其與新用戶關聯?

或者我在想這個錯誤的方式?

回答

14

看來我認爲register事件只在用戶授予訪問權限時纔會觸發問題。無論是否提示用戶,register事件都將響應對requestPermissions的呼叫而觸發。因此,通過請求權限並在應用加載時對register事件做出響應,您始終可以獲取設備ID。像這樣:

PushNotificationIOS.addEventListener('register', (token) => { 

    ... store or use the token here ... 

}); 

PushNotificationIOS.requestPermissions(); 
+14

如果這有助於其他人...'註冊'事件永遠不會在iOS模擬器中觸發。爲了測試這個,你需要使用一個真實的設備。 – Wireblue

+1

註冊事件後有沒有辦法訪問設備令牌? – chandlervdw

+0

我不這麼認爲。但是看起來每次啓動應用程序時都會觸發註冊事件,因此您可以隨時抓取並將其存儲在某個位置以供其他組件使用。 – nicholas