我知道有可能檢查用戶是否禁用了推送設置,如objective c - Detect when user change the app's notifications settings中所述。當應用程序禁用推送時,iOS應用程序應該做什麼?
根據上面的文章,即使用戶已禁用應用程序的推送通知,也會發送推送通知。據我瞭解,我應該始終註冊推送通知applicationDidFinishLaunching:
。
大多數例子看起來像這樣,即用戶設置被忽略。
- (void)applicationDidFinishLaunching:(UIApplication *)app {
// other setup tasks here....
[[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
}
如果應用程序應該考慮這些設置,那麼正確的實現如何看起來像?
我之所以問這個問題,是因爲我們有很多客戶抱怨說,儘管他們已經禁用了推送通知,但他們正在收到推送通知。這似乎適用於iOS 6.
作爲開發者,我應該關注用戶禁用推送通知的情況嗎?我一遍又一遍地閱讀文檔。特別是文檔application:didReceiveRemoteNotification:
。它沒有說明是否在用戶禁用推送通知時調用它。
您可以更準確地瞭解iOS更改的性質或回答您提到的不一致嗎?我的理解是,應用程序註冊通知(無論用戶的設置如何,因爲在後續通知時,用戶可能已經更改了他們的設置),通知在將來的日期生成,用戶可以看到通知,並可以採取行動或不採取行動,或者用戶不通知。我不確定這裏的問題到底是什麼。但是,不,註冊不會失敗,因爲用戶當前已關閉通知。 – Rob
我也明白,禁用iOS時不會顯示推送通知。然而,沒有提到應用程序在註冊並且用戶已禁用推送通知時收到通知。即使用戶禁用推送通知,始終註冊安全嗎?我試圖相應地澄清這個問題。 –
我在看這篇文章,並且對不同iOS版本的差異感到困惑:[objective c - 當用戶更改應用程序的通知設置時檢測](http://stackoverflow.com/questions/1535403/determine-on-iphone-如果用戶 - 已啓用 - 推通知)。根據其中一個答案的評論,iOS 5已經發生了變化。 –