iOS 8及以上版本最不為人知的一個特點是與應用設置的深層鏈接,用戶可以根據APP的需要授權啟用位置、通知、聯系人、相機、日歷以及健康等設置。
大多數應用程序僅僅是彈出一個包含操作指令的警示窗口,如“進入設置>隱私>位置>OUR_APP”。例如,推特的應用程序有一個更為精致和友好的指示對話框,所以我就把它當做一個例子來使用(可惜大多數應用程序都會有一個非常糟糕的版本)。
我現在以一個心情沮喪用戶的身份寫這個帖子,希望更多的iOS開發者能與用戶設置建立直接的深層鏈接,尤其是操作起來也非常容易。
以下是一個日歷相關的應用程序的警告提醒代碼,其中包含了為用戶進行設置的選項。我正試圖在其中包含一個能將用戶帶入設置的選項。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
func showEventsAcessDeniedAlert() {
let alertController = UIAlertController(title:
"Sad Face Emoji!"
,
message:
"The calendar permission was not authorized. Please enable it in Settings to continue."
,
preferredStyle: .Alert)
let settingsAction = UIAlertAction(title:
"Settings"
, style: .Default) { (alertAction)
in
// THIS IS WHERE THE MAGIC HAPPENS!!!!
if
let appSettings = NSURL(string: UIApplicationOpenSettingsURLString) {
UIApplication.sharedApplication().openURL(appSettings)
}
}
alertController.addAction(settingsAction)
let cancelAction = UIAlertAction(title:
"Cancel"
, style: .Cancel, handler: nil)
alertController.addAction(cancelAction)
presentViewController(alertController, animated:
true
, completion: nil)
}
|
再次提醒,僅需要添加此代碼到您的APP中就能實現與用戶設置進行深層鏈接
1
2
3
|
if
let appSettings = NSURL(string: UIApplicationOpenSettingsURLString) {
UIApplication.sharedApplication().openURL(appSettings)
}
|
當用戶拒絕了授權,這就更像Swarm應用程序了。
當用戶點擊“打開設置”時,他們就能很方便地進入這個界面。
只需添加這三行代碼,就能在激活APP使用權限這一重要方面提高用戶體驗。以我為例,用戶甚至會因為日歷未被授權而不能繼續使用應用程序。因此,我最大的興趣就是讓用戶更改設置中的權限變得簡單易行。同樣,這也適用於許多其他的應用程序。
這一方法在iOS 9系統中的應用效果更好!設置界面中將有一個返回按鈕,能直接使用戶返回到您的應用程序。真沒理由不用這個方法啊!