我正在構建一個嚴重依賴APN的應用程序。在我的應用第一次啓動後,iOS詢問是否允許此應用使用APN(由於撥打registerForRemoteNotificationTypes:
)。然而一旦被解僱,這個對話永遠不會回彈。我必須手動去Settings->Notifications->MyApp
啓用/禁用那裏的東西。那麼是否有一種方法可以避免這種喧擾,並且實際體驗到每次在調試模式下啓動我的應用時,用戶在第一次啓動時都會遇到什麼?如何取消「允許推送通知」對話框後被解除一次?
回答
這裏是你如何Apple say做到這一點:
重置推送通知權限警報iOS上
第一時間推送通知啓用推送應用註冊, 的iOS詢問用戶是否希望收到該應用的通知。 一旦用戶迴應此警告,除非該設備恢復或應用程序已經在 每天至少被卸載了它不會被再次提出 。
如果你想模擬首次您的應用程序的運行,你可以離開 卸載了一天的應用程序。您可以實現後者沒有 實際上按照下列步驟等待一天:
,從設備刪除您的應用程序。
完全關閉設備並重新打開設備。
轉到設置>常規>日期&時間和設置日期提前一天或更多。
再次完全關閉設備並重新打開設備。
哇...好的工作蘋果:)但謝謝你!總比沒有好。我會給它一個鏡頭。 – Schultz9999
副作用:如果您在啓用了iMessages的iDevice上執行此操作,將有一天移動到未來將禁用iMessage。因此,完成上述步驟並重置時鐘後,請記住重新啓用iMessages,否則您將無法發送或接收 –
我剛剛發現的某些內容:重置權限後,只要提示再次顯示,您就可以轉向關閉/打開電話而不是回答提示,這會在下一次應用程序運行時再次提示。用於更改代碼試圖找出是否/何時某些代碼路徑會導致提示。 –
當前他們是否編程方式來提示用戶重新接受推遲通知後,他們已經決定說不。
您應該簡單地檢查您是否被授予訪問權限,如果不顯示提示用戶手動授予隱私設置權限的視圖,以啓用應用程序的推送通知功能。
我甚至不想找到一種方法來問同樣的事情。我所需要的基本上是使系統進入初始狀態。但我明白你的觀點。這是我以後通過調用'[[UIApplication sharedApplication] enabledRemoteNotificationTypes]'所做的。問題是我想在應用程序啓動時採取不同的行爲。我可以嘗試使用我想的相同方法。 – Schultz9999
我明白你想要做什麼,但不幸的是這是不可能的(除非有一些未公開的私有API來這樣做)。 – Woodstock
因爲時間就是金錢和其他方法採取永遠,只是改變你的包ID一遍又一遍調試時,每次通知將得到查詢清新。一旦您滿意代碼返回到原始包ID。
我認爲這絕對是最好的,最快速和最安全的方式,讓應用程序回到它的初始狀態。 – ooxio
但是您是否需要一直更改配置文件? –
@VanDuTran我不必,推動仍然爲我工作。但即使你不得不這樣做,它也會比當前標記的解決方案快得多。哈哈! –
在iOS 9.x中,每次刪除應用程序並重新安裝時,都可以獲得提示。對於AppStore生產下載和adhoc模式都是如此。設備令牌每次都是唯一的。
@chengsam在iOS 10中驗證了這一點。
我的問題是沒有註冊UserNotificationSettings。這允許APN工作,但不允許背景聲音或徽章。
[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
如果您只是測試Push Notifications提示正確顯示,請使用模擬器。您只需卸載該應用程序並重新安裝,並在您嘗試註冊推送通知時再次出現提示。
在IOS10我現在可以通過刪除應用程序再次獲得提示。
這是iOS 8的當天回來 –
- 1. 檢測用戶對「允許推送通知」對話框的響應
- 2. 允許通知在調用stopForeground(false)後被取消
- 3. 允許推送通知版本控制
- 4. 如何允許取消對在Windows文件對話框優雅
- 5. 推送通知對話
- 6. 我如何知道用戶是否允許推送通知
- 7. 刪除對話框後仍然收到推送消息
- 8. 如何本地化推送通知配置對話框警報?
- 9. 單擊確定或不允許後,xcode推送通知
- 10. 要求用戶在註冊過程後允許推送通知
- 11. 如何取消從通知中心,這是推送通知
- 12. 如何處理推送通知允許從iOS中的設置
- 13. 推送通知推送出現兩次?
- 14. 的iOS:如何獲得推送通知對象用戶通知警告對話框中選擇後,「取消」,然後啓動應用程序手動
- 15. Swift取消推送通知顯示前
- 16. 在解析推送通知框架
- 17. 特別提醒用戶何時允許推送通知
- 18. 如何創建通知取消對話框?
- 19. 通過「允許推送通知」警報進行控制
- 20. iOS推送通知消息
- 21. 如何知道用戶在推送通知中點擊「不允許」
- 22. 如何解除對話框?
- 23. 如何刪除推送通知API
- 24. 蘋果公司允許的推送通知的最大允許數量
- 25. 提醒允許或不允許Apple應用程序中的推送通知
- 26. 如何一次發送多個推送通知使用Android推送銳利庫?
- 27. 嵌套對話框:消息被髮送兩次
- 28. 修改推送通知的權限請求對話框
- 29. 當我收到推送通知時無法創建對話框
- 30. WorkLight觸發iOS推送通知權限對話框
檢查此鏈接http://stackoverflow.com/questions/10191006/objective-c-detect-when-user-change-the-apps-notifications-settings – Pawan
你應該將此標記爲已回答,因爲下面的方法會工作(對於iOS 7.0+)。 – LucasA
@LucasA由誰? – Schultz9999