2015-08-24 19 views
2

是否有任何解決方法來確定用戶是否曾被要求提供推送通知權限? 直接調用isRegisteredForRemoteNotifications對我來說是不夠的。 我有一個屏幕,根據它是否是第一次啓動應用程序進行更改。iOS - 推送通知未確定

  1. 如果是,它說應用程序可以發送推送通知,並在提示時點擊允許。然後用戶單擊Got it按鈕,並顯示帶有推送通知提示的VC。如果用戶註冊了另一個帳戶(推送通知被記住),我想顯示他需要去的信息設置允許推送通知(如果它們被禁用)或者只是簡單地跳過通知提示屏幕(如果用戶允許他們)。

所以換句話說,我需要知道,如果用戶允許推送通知,但他是否曾經被要求過。

我試圖在用戶被問到後,但當應用程序被刪除並再次安裝(一天後或更多,所以推通知設置被重置)keychain保存一些數據用戶不問(我只檢查是否有我的鑰匙扣國旗)。

感謝您的幫助

編輯#1我添加圖像呈現我的問題Push notifications

與OK其實屏幕,轉到設置按鈕不單獨視圖控制器,但它其實並不重要。

回答

0

推送通知許可警報不是基於每個用戶。它只會被提示一次。您無法更改代碼中的任何設置以基於每個用戶獲取警報。

即使您刪除了您的應用並重新安裝,它也不會要求獲得該許可。

如果您確實想要再次提醒您,必須按照Apple提供的步驟進行操作,但不能通過代碼進行操作。

https://developer.apple.com/library/ios/technotes/tn2265/_index.html#//apple_ref/doc/uid/DTS40010376-CH1-TNTAG42

使用此如果用戶拒絕訪問

NSUInteger rntypes = [[UIApplication的sharedApplication] enabledRemoteNotificationTypes];

//設置默認爲禁用除非我們找到......

的NSString * pushBadge =(rntypes & UIRemoteNotificationTypeBadge)? @「啓用」:@「禁用」; NSString * pushAlert =(rntypes & UIRemoteNotificationTypeAlert)? @「啓用」:@「禁用」; NSString * pushSound =(rntypes & UIRemoteNotificationTypeSound)? @「啓用」:@「禁用」;

+0

我明白這一點。我不想強制權限提醒再次顯示。如果用戶在第一次註冊時允許推送通知,然後他再次註冊,那麼我跳過包含有關推送通知信息的屏幕。當用戶在首次註冊時不允許他們顯示屏幕時,用戶可以跳過或打開設置(通知)並手動更改它們。所以我只需要知道在通知設置列表中是否有適用於我的應用程序的條目。 – Cahir09