首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >检查IOS 8中是否启用了本地通知

检查IOS 8中是否启用了本地通知
EN

Stack Overflow用户
提问于 2014-09-26 04:18:18
回答 7查看 23K关注 0票数 32

我在互联网上到处寻找如何用IOS 8创建本地通知。我发现了很多文章,但没有人解释如何确定用户是否设置了“警报”。有人能帮帮我吗!我宁愿使用目标C而不是Swift。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-09-26 05:32:45

您可以使用UIApplicationcurrentUserNotificationSettings来检查它。

代码语言:javascript
代码运行次数:0
运行
复制
if ([[UIApplication sharedApplication] respondsToSelector:@selector(currentUserNotificationSettings)]){ // Check it's iOS 8 and above
    UIUserNotificationSettings *grantedSettings = [[UIApplication sharedApplication] currentUserNotificationSettings];

    if (grantedSettings.types == UIUserNotificationTypeNone) {
        NSLog(@"No permiossion granted");
    }
    else if (grantedSettings.types & UIUserNotificationTypeSound & UIUserNotificationTypeAlert ){
        NSLog(@"Sound and alert permissions ");
    }
    else if (grantedSettings.types  & UIUserNotificationTypeAlert){
        NSLog(@"Alert Permission Granted");
    }
}

希望这有帮助,如果你需要更多的信息,请告诉我。

票数 76
EN

Stack Overflow用户

发布于 2015-10-01 04:36:41

要详细说明艾伯特的答案,不需要在Swift中使用rawValue。由于UIUserNotificationType符合OptionSetType,所以可以执行以下操作:

代码语言:javascript
代码运行次数:0
运行
复制
if let settings = UIApplication.shared.currentUserNotificationSettings {
    if settings.types.contains([.alert, .sound]) {
        //Have alert and sound permissions
    } else if settings.types.contains(.alert) {
        //Have alert permission
    }
}

您可以使用括号[]语法组合选项类型(类似于在其他语言中组合选项标志的按位或|运算符)。

票数 23
EN

Stack Overflow用户

发布于 2016-05-31 10:31:50

快速使用guard

代码语言:javascript
代码运行次数:0
运行
复制
guard let settings = UIApplication.sharedApplication().currentUserNotificationSettings() where settings.types != .None else {
    return
}
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26051950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档