有几个问题关闭,但我还没有发现任何完全正确的问题:
这与远程通知无关,我只使用本地通知。
我想确定本地通知权限的当前状态,以便我可以显示三个接口之一:
很容易弄清楚是否通过currentUserNotificationSettings()
启用了通知,但我无法弄清楚如何确定"未启用,因为我们还没有问过& #34;并且"未启用,因为用户说不#34;。
答案 0 :(得分:0)
正如@shpasta所述,您必须使用NSUserDefaults
跟踪此情况。使用NSUserDefaults
非常简单。
致电registerUserNotificationSettings:
后,请添加以下代码:
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "didRegister")
然后,无论您想要检查本地通知的当前状态,请使用以下命令:
if UIApplication.sharedApplication().currentUserNotificationSettings().types == TYPES_YOU_NEED {
// Code for enabled notifications
} else if NSUserDefaults.standardUserDefaults().boolForKey("didRegister") {
// Code for denied notifications
} else if !(NSUserDefaults.standardUserDefaults().boolForKey("didRegister")) {
// Code for non-enabled notifications, can display dialog
}
上述实现的唯一警告是,如果用户只允许您需要的某些类型,而不是所有类型。你会在第一个条件下检查,但我没有加入,因为我不知道你对那种特殊情况你想要什么。