2014-10-11 35 views

回答

2

恐怕不是。雖然你可以確定是否啓用通知(使用UIApplication的isRegisteredForRemoteNotifications方法),但這並不告訴你爲什麼通知未被註冊。

它可以是任何的理由如下:

•用戶從未提示他們。

•用戶已明確拒絕他們。*

•用戶認可他們在某些時候,但後來將它們關閉。*

這是不幸的,蘋果不提供檢測手段提示時用戶拒絕推送通知註冊。我懷疑這是一個有意識的設計決策,旨在使開發人員不太可能向用戶發出高招。

我希望這會有所幫助。

(* ...您可以通過在第一次註冊時存儲持久性標誌來推斷第二個和第三個選項中的哪一個適用,但這似乎不是您要求的......)

+0

如果只有'hasDeclinedRemoteNotificiationPermission',我們可以引導用戶進入設置選項卡,而不是靜靜地調用'registerForRemoteNotifications'。我認爲下一個最好的做法是保持我們提供系統對話框的旗幟天氣,然後結合使用標記和已註冊的推送令牌來確定我們需要進入設置選項卡或展示推送的天氣。 – Zorayr 2015-05-18 02:12:04

2

沒有直接的方法做到這一點,但我已經實施了一種解決方法:APNPermisionRequest

這裏有趣的部分是添加一個觀察者UIApplicationDidBecomeActiveNotification,然後顯示請求。通知被觸發後(即請求被回答),您可以使用[[UIApplication sharedApplication] isRegisteredForRemoteNotifications]檢查狀態。

相關問題