2011-11-12 41 views
6

我想尊重用戶的意圖,如果他們已經關閉了我的應用的遠程通知,請不要致電[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(...)]iOS5:如何確定應用程序的通知中心是打開/關閉的

當撥打電話UIRemoteNotificationType enabledTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]時,我收到了有關爲我的應用啓用了哪些類型的通知的信息。但是,此應用程序的通知中心可以關閉,並且我仍然可以從此方法獲取先前啓用的通知類型,直到我選擇「無」。

因此,我的應用程序認爲即使它們不是,也啓用通知。

有沒有辦法以編程方式查找我的應用程序的通知中心狀態? (開關)。

+0

如果通知關閉並且您確實註冊了,您是否收到'-application:didRegisterForRemoteNotificationsWithDeviceToken:'或'-application:didFailToRegisterForRemoteNotificationsWithError:'?如果後者被引用,我不會感到驚訝。 –

+1

對於我來說,只有在通知中心設置打開或關閉時纔會執行第一種方法。但問題是如何從該方法中確定它的設置。 –

+0

調用'[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(...)]'將不會做任何事,用戶可以看到您的應用程序的通知是否在設置中關閉,爲什麼你不想每次都調用它? –

回答

9

請勿將「通知中心」與「啓用推送通知」混淆。我可以從通知中心刪除應用程序,但仍然以徽章號碼的形式接收推送通知,因此您的舊方法應該可以正常工作。

+0

這是有幫助的,但有沒有辦法檢查應用程序是否在通知中心務實? –

+0

我不相信除了應用程序委託方法註冊和註冊遠程通知失敗之外,還有什麼辦法可以告訴用戶的通知設置是否適用於您的應用程序。 –

相關問題