App的通知功能有时候会被用户不小心禁止,怎样做才能方便用户在“设置”中重新开启呢?可以使用URL scheme。iOS系统的“设置”有自己定义的URL scheme,通过访问这个URL就可以快速跳转到设置界面。
首先声明要使用到的URL scheme
跳转到“设置”首页
let url = NSURL.init(string: "prefs:root")!
UIApplication.sharedApplication().openURL(url)
跳转到“通知”首页
let str = "prefs:root=NOTIFICATIONS_ID"
let url = NSURL.init(string: str)!
UIApplication.sharedApplication().openURL(url)
跳转到自己App的“通知”
//注意是获取bundleIdentifier, Stack Overflow上一些回答居然说是BundleDisplayName。
let identifier = NSBundle.mainBundle().bundleIdentifier!
let str = "prefs:root=NOTIFICATIONS_ID&path=\(identifier)"
let url = NSURL.init(string: str)!
UIApplication.sharedApplication().openURL(url)
首先获取自己App的bundleIdentifer,然后拼在prefs:root=NOTIFICATIONS_ID&path=
之后。这里要注意NSBundle.mainBundle().bundleIdentifier
返回的是option类型,一定要转成String类型的,这样生成的url才是有效的。Option类型虽然可以直接与字符串拼合但会插入其他字符。
var str: String? = "I am String"
print(str)
输出:"Optional("I am String")\n"
跳转到“设置”中其他位置
URL Scheme | 位置 |
---|---|
prefs:root=General | 通用 |
prefs:root=General&path=Network/VPN | VPN |
可以到这里查看更多可以跳转的地方,记得一定要多测试!
网友评论