Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用Swift获取推送通知状态?_Ios_Swift_Push Notification_Apple Push Notifications - Fatal编程技术网

Ios 如何使用Swift获取推送通知状态?

Ios 如何使用Swift获取推送通知状态?,ios,swift,push-notification,apple-push-notifications,Ios,Swift,Push Notification,Apple Push Notifications,在我的应用程序中,有一个启用/禁用推送通知的设置。注册一切正常,我的应用程序收到通知 现在,当我更改设置时,我还使用UIApplication.shared.unregisterForRemoteNotifications()取消注册 但当我尝试获取应用程序已注册或未使用UIApplication.shared.isRegisteredForRemoteNotifications的状态时,它总是返回我true 任何解决方案,我如何解决这个问题?我已经在推送通知设置的应用程序中以这种方式实现了

在我的应用程序中,有一个启用/禁用推送通知的设置。注册一切正常,我的应用程序收到通知

现在,当我更改设置时,我还使用
UIApplication.shared.unregisterForRemoteNotifications()
取消注册

但当我尝试获取应用程序已注册或未使用
UIApplication.shared.isRegisteredForRemoteNotifications
的状态时,它总是返回我
true


任何解决方案,我如何解决这个问题?

我已经在推送通知设置的应用程序中以这种方式实现了

  • 当用户选择退出推送通知时,我调用了一个api(带有参数“isEnabled=false”的UpdateNotificatonStatus),该api禁用服务器端的推送通知标志

  • 所以,每当服务器有一些数据要发送时……服务器将检查是否为用户启用了推送通知?,如果没有,则忽略发送通知

  • 如果用户改变主意,从应用程序启用了通知,则使用true标志(updateNotificiationStatus,参数为“isEnabled=true”)再次调用api


您是在哪个iOS版本中检查此功能,还是在模拟器或真实设备中检查?我相信,如果应用程序成功完成远程通知注册,该方法将始终返回
true
。如果用户不需要通知,则他们可以在应用程序的设置中禁用通知,或者您可以更新后端数据库,以标记不应发送通知或删除推送注册令牌。您好@DarshanPatel我正在使用iOS 12.2并在真实设备中测试。嘿,@Paulw11感谢您的建议。没有使用服务器调用就没有其他解决方案?