如何判断用户是否在iOS 9或iOS 10上启用了远程通知?

如果用户没有允许或单击了No,我想切换一条消息,询问他们是否要启用通知.

推荐答案

IOS 10使用UNUserNotificationCenter后更新了答案.

首先你需要import UserNotifications美元然后

let current = UNUserNotificationCenter.current()
        current.getNotificationSettings(completionHandler: { permission in
            switch permission.authorizationStatus  {
            case .authorized:
                print("User granted permission for notification")
            case .denied:
                print("User denied notification permission")
            case .notDetermined:
                print("Notification permission haven't been asked yet")
            case .provisional:
                // @available(iOS 12.0, *)
                print("The application is authorized to post non-interruptive user notifications.")
            case .ephemeral:
                // @available(iOS 14.0, *)
                print("The application is temporarily authorized to post notifications. Only available to app clips.")
            @unknown default:
                print("Unknow Status")
            }
        })

这段代码将一直工作到iOS9,对于iOS10使用上面的代码片段.

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

Ios相关问答推荐

Swift:从字符串目录获取带有参数的本地化字符串

使用UIGraphicsBeginIMAext创建新图像会扭曲图像 colored颜色

(Flutter)获取图像从图像拾取器保存和加载问题

AlGolia InstantSearch Swift Package Manager引发编译错误

在iOS 17脉冲符号效果不起作用的情况下制作UIBarButtonItem动画(没有UIImageView)

删除领域中的cartItem时出现问题

使用 WebKit 加载 YouTube 视频时控制台中打印警告

长按 SwiftUI 更改项目的顺序

由于缺少 libarclite_iphonesimulator.a 文件,将 XCode 升级到 14.3 后无法在模拟器上运行 Flutter 应用程序

Flutter Aging Person 自定义小部件

使用 Foundation 解压缩文件

Flutter IOS 构建错误 - 在签名和功能编辑器中 Select 一个开发团队.

PropertyWrapper 不存在的 Codable 属性的默认值

在视图控制器中实例化视图控制器是否可能/智能?

在 Swift 中映射 MySQL 数据

使用 @MainActor 更新 UI 的适当策略是什么?

在向我的 struct 添加属性后获取线程 10:EXC_BAD_ACCESS (code=EXC_I386_GPFLT)

警告:iPad:Icon-72.png:图标尺寸(0 x 0)

向标签栏控制器添加新标签

Xcode:此时无法安装此应用程序.