2015-11-04 49 views
2

我有一個應用程序,我已經實現了推送通知。我與用戶檢查,以允許遠程通知:在Swift中以編程方式更改推送通知

let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil) 
UIApplication.sharedApplication().registerUserNotificationSettings(settings) 
UIApplication.sharedApplication().registerForRemoteNotifications() 

我還將響應存儲在DB與設備令牌。

我也在設置頁面中實現了UISwitch來啓用/禁用推送通知,但是我只能在數據庫列中啓用/禁用此功能。

我的問題是,如果用戶在初始請求中選擇了「不允許」,我無法在手機設置中啓用推送通知,因此即使我在數據庫中設置了啓用值,通知也將永遠不會到達手機因爲手機設置仍然設置爲禁用。

Swift 2有沒有辦法在應用程序中更改手機設置中的推送通知,而不是用戶必須進入設置更改?或者,UISwitch允許用戶切換開啓/關閉推送通知是完全多餘的?

回答

4

您無法通過程序更改推送通知的權限狀態。此外,提示要求用戶允許推送通知不能一次又一次顯示。你可以參考這個https://developer.apple.com/library/ios/technotes/tn2265/_index.html

第一次推送應用程序註冊推送通知時,iOS會詢問用戶是否希望收到該應用程序的通知。一旦用戶對此警報作出響應,除非設備已恢復或應用程序已卸載至少一天,否則不會再次出現。

因此,使用UISwitch切換權限狀態沒有任何意義,除非您使用開關狀態打開/關閉服務器的遠程通知。

+0

謝謝。也許我可以檢查切換切換時是否禁用通知,並提醒用戶需要在設置中啓用它們。 – puks1978

相關問題