回答

16

首先,你是不是要直接調用此方法。相反,您應在每次啓動應用程序時撥打registerForRemoteNotificationTypes:,然後再調用application:didRegisterForRemoteNotificationsWithDeviceToken:,您必須執行該操作。

其次,是的,你應該每次都重新提交令牌給你的服務器。從文檔:

通過每次啓動應用程序請求設備令牌並將其傳遞給提供程序,可以幫助確保提供程序具有設備的當前令牌。如果用戶將備份還原到創建備份以外的設備(例如,用戶將數據遷移到新設備),則他或她必須至少啓動一次該應用程序,以使其再次接收通知。如果用戶將備份數據恢復到新設備或重新安裝操作系統,則設備令牌會更改。此外,切勿緩存設備令牌並將其提供給您的提供商;每當你需要時總是從系統獲取令牌。如果您的應用程序先前已註冊,則調用registerForRemoteNotificationTypes:將導致iOS立即將設備令牌傳遞給委託,而不會產生額外開銷。

+1

謝謝 - 只是澄清我沒有調用「應用程序:didRegisterForRemoteNotificationsWithDeviceToken」我的意思是它被稱爲委託方法。 – jodm 2011-01-26 12:37:08