App的通知功能有時(shí)候會(huì)被用戶不小心禁止,怎樣做才能方便用戶在“設(shè)置”中重新開啟呢?可以使用URL scheme。iOS系統(tǒng)的“設(shè)置”有自己定義的URL scheme,通過(guò)訪問(wèn)這個(gè)URL就可以快速跳轉(zhuǎn)到設(shè)置界面。
首先聲明要使用到的URL scheme
跳轉(zhuǎn)到“設(shè)置”首頁(yè)
let url = NSURL.init(string: "prefs:root")!
UIApplication.sharedApplication().openURL(url)
跳轉(zhuǎn)到“通知”首頁(yè)
let str = "prefs:root=NOTIFICATIONS_ID"
let url = NSURL.init(string: str)!
UIApplication.sharedApplication().openURL(url)
跳轉(zhuǎn)到自己App的“通知”
//注意是獲取bundleIdentifier, Stack Overflow上一些回答居然說(shuō)是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類型,一定要轉(zhuǎn)成String類型的,這樣生成的url才是有效的。Option類型雖然可以直接與字符串拼合但會(huì)插入其他字符。
var str: String? = "I am String"
print(str)
輸出:"Optional("I am String")\n"
跳轉(zhuǎn)到“設(shè)置”中其他位置
URL Scheme | 位置 |
---|---|
prefs:root=General | 通用 |
prefs:root=General&path=Network/VPN | VPN |
可以到這里查看更多可以跳轉(zhuǎn)的地方,記得一定要多測(cè)試!