本文由CocoaChina譯者Kaming翻譯
原文:iOS: You’re Doing Settings Wrong
iOS 8及以上版本最不為人知的一個特點是與應用設置的深層鏈接,用戶可以根據APP的需要授權啟用位置、通知、聯系人、相機、日歷以及健康等設置。
大多數應用程序僅僅是彈出一個包含操作指令的警示窗口,如“進入設置>隱私>位置>OUR_APP”。例如,推特的應用程序有一個更為精致和友好的指示對話框,所以我就把它當做一個例子來使用(可惜大多數應用程序都會有一個非常糟糕的版本)。
我現在以一個心情沮喪用戶的身份寫這個帖子,希望更多的iOS開發者能與用戶設置建立直接的深層鏈接,尤其是操作起來也非常容易。
以下是一個日歷相關的應用程序的警告提醒代碼,其中包含了為用戶進行設置的選項。我正試圖在其中包含一個能將用戶帶入設置的選項。
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中就能實現與用戶設置進行深層鏈接
if let appSettings = NSURL(string: UIApplicationOpenSettingsURLString) { UIApplication.sharedApplication().openURL(appSettings) }
當用戶拒絕了授權,這就更像Swarm應用程序了。
當用戶點擊“打開設置”時,他們就能很方便地進入這個界面。
只需添加這三行代碼,就能在激活APP使用權限這一重要方面提高用戶體驗。以我為例,用戶甚至會因為日歷未被授權而不能繼續使用應用程序。因此,我最大的興趣就是讓用戶更改設置中的權限變得簡單易行。同樣,這也適用於許多其他的應用程序。
注意:網友@jl_hfl指出,這一方法在iOS 9系統中的應用效果更好!設置界面中將有一個返回按鈕,能直接使用戶返回到您的應用程序。真沒理由不用這個方法啊!