2011-05-21 107 views
4

第一次啓動推送應用程序時,用戶會被問到是否要允許推送通知。首次啓動時推送通知的註冊設備

這裏的問題是,在用戶做出決定之前調用didRegisterForRemoteNotificationsWithDeviceToken,因此enabledRemoteNotificationTypes在用戶單擊按鈕之前都被禁用。

我在我的服務器上註冊了設備,用於在這個didRegisterForRemoteNotificationsWithDeviceToken方法中推送消息,所以我第一次得到一個禁用所有通知的用戶,儘管用戶幾秒鐘後可能點擊了「允許」。

下一次啓動此信息會更新,但只要用戶不重新啓動應用程序(在多任務處理時可能需要很長時間),我無法將此消息發送給此人。

有人對我有幫助嗎?有沒有更好的地方用用戶設置更新我的服務器。是否有可能出現在第一次顯示的彈出窗口?

感謝您的所有提示!

回答

2

您不應該跟蹤服務器上啓用的通知類型。當用戶爲您的應用停用特定類型的通知時,聲音,您的通知仍然可以包含聲音密鑰,但設備不會播放它。

問題是,用戶可能(重新)啓用任何通知類型爲您的應用程序,因爲它沒有運行,所以你的服務器將沒有機會注意到的變化,你不會提交通知,即使用戶期望他們。

+0

我想我明白爲什麼蘋果會首先發送這條消息,但是您能否給出一個關於如何正確執行此操作的想法? – chustar 2011-05-22 01:17:23

+0

我將這些值添加到我的服務器,因爲我不希望將通知發送給停用所有通知的人。 – choise 2011-05-22 12:57:13

+0

如果用戶禁用通知,反饋服務應該告訴你(如果沒有,我不會擔心)。您也可以嘗試在啓動時定期重新註冊幾次(如果沒有啓用通知),或者您的應用程序被預先登錄。你甚至可能不需要重新註冊;也許enabledRemoteNotificationTypes更改(也許你可以觀察它使用KVO,如果它沒有發佈通知)。 – 2011-06-20 00:56:48

相關問題