2015-05-10 55 views
0

在爲我的應用程序註冊過程中,我要求允許推送通知,他們按下「允許推送通知」按鈕,然後顯示默認提示以允許推送通知。要求用戶在註冊過程後允許推送通知

問題在於,我使用parse.com作爲後端,它需要我在用戶註冊推送通知時保存設備令牌。由於我不是在應用程序啓動時詢問他們,我無法獲取設備標記並將其存儲到我的Parse數據庫。

如果用戶同意允許通知,將

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken 

方法,他們啓動應用程序下一次叫什麼名字?如果沒有,是否有辦法在其他地方獲取設備標記,以便我可以將其保存到Parse?

回答

1

didRegisterForRemoteNotificationsWithDeviceToken:只要用戶通過iOS通知(無論這是您的應用程序的執行情況)允許它們,就會在用戶登錄並同意後進行調用。在這種方法中,您應該採取[PFUser currentUser]並將其放入PFInstallation對象中。

在後續啓動應用程序時,如果用戶請求了通知,則應再次呼叫registerForRemoteNotifications,這將導致另一個呼叫didRegisterForRemoteNotificationsWithDeviceToken:,因爲通知令牌可能已更改。

如果允許用戶註銷/註冊,則應根據需要更新PFInstallation對象。

+0

我註冊的是用戶通知,而不是遠程通知。我感到非常愚蠢,感謝您的幫助! – harkmall

0

我假設你已經在你的AppDelegate實現了這個方法:

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error 

兩個回調都涉及到對設備令牌APNS請求。

在您註冊您的通知類型後,您應該撥打[application registerForRemoteNotifications]在上述各回調中接收設備令牌(或不要)。

您可以在任何地方撥打[[UIApplication sharedApplication] registerForRemoteNotifications]來獲取設備令牌。