puk*_*978 3 notifications ios swift swift2
我有一个应用程序,我已经实现了推送通知.我与用户核实允许远程通知:
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(settings)
UIApplication.sharedApplication().registerForRemoteNotifications()
Run Code Online (Sandbox Code Playgroud)
我还使用设备令牌将响应存储在DB中.
我还在设置页面中实现了UISwitch以启用/禁用推送通知,但是我只能在DB列中启用/禁用此功能.
我的问题是,如果用户在初始请求中选择了"不允许",我就无法在手机设置中启用推送通知,因此即使我在数据库中将值设置为启用,通知也不会作为手机设置到达手机仍设置为禁用.
Swift 2中有没有办法在应用程序内更改手机设置中的推送通知,而不是用户必须进入要更改的设置?或者让UISwitch允许用户打开/关闭推送通知是完全多余的?
用 swift 4 更新:
func switchChanged(sender: UISwitch!) {
print("Switch value is \(sender.isOn)")
if(sender.isOn){
print("on")
UIApplication.shared.registerForRemoteNotifications()
}
else{
print("Off")
UIApplication.shared.unregisterForRemoteNotifications()
}
}
Run Code Online (Sandbox Code Playgroud)
您无法从程序更改推送通知权限状态.此外,无法一次又一次地显示要求用户允许推送通知的提示.您可以参考此https://developer.apple.com/library/ios/technotes/tn2265/_index.html.
第一次启用推送的应用程序注册推送通知时,iOS会询问用户是否希望接收该应用程序的通知.一旦用户响应此警报,除非设备已恢复或应用程序已卸载至少一天,否则不会再次显示该警报.
因此,除非您使用开关状态打开/关闭服务器的远程通知,否则使用UISwitch切换权限状态没有任何意义.
| 归档时间: |
|
| 查看次数: |
4774 次 |
| 最近记录: |