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

时间:2019-04-27 06:57:48

标签: ios swift push-notification apple-push-notifications

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

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

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

任何解决方案,我该如何解决?

2 个答案:

答案 0 :(得分:1)

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

  • 当用户选择不接受推送通知时,我调用了 api(带有参数“ isEnabled = false”的updateNotificaitonStatus),在服务器端禁用了用于推送通知的标志。

  • p>
  • 因此,只要服务器有一些要发送的数据,那么...服务器将检查是否为用户启用了推送通知?如果没有,则忽略发送通知。

  • 如果用户改变了主意,并启用了来自应用的通知,则使用true标志( updateNotificaitonStatus,参数为“ isEnabled = true” )重新发起一次api调用。

答案 1 :(得分:0)

使用此代码

let isRegisteredForRemoteNotifications = UIApplication.shared.isRegisteredForRemoteNotifications
if isRegisteredForRemoteNotifications {
     // User is registered for notification
} else {
     // Show alert user is not registered for notification
}

如果您需要任何教程,请使用this