最近偶然發現的一個怪現象:
應用需要相機權限,如果檢測到沒有開啟權限,我們代碼內,通過openURL跳轉設置界面
//打開應用設置 let url:NSURL = NSURL(string: UIApplicationOpenSettingsURLString)! if UIApplication.shared.canOpenURL(url as URL){ UIApplication.shared.openURL(url as URL) }
這樣做,的確可以直接跳到設置內-本應用下-權限管理界面,我們可以直接開啟相機權限,但問題來了。。。
只要操作了相機權限,我們的應用就會立即崩潰,
此時:
如果你是調試模式,會直接在Appdelegate處崩潰
如果你是安裝后運行,點擊左上角的返回原應用,你會發現,應用是重新啟動了一遍。
這個問題怎么辦?
找了很多資料,發現是無法解決的一個系統bug。
分析后,個人理解是這樣:
iOS10之后:
對於應用,我們調整了某個權限,返回時,應用會重新啟動,以讓權限能夠生效。
這個問題,我查看了微信,咸魚兩款APP。
微信的解決辦法是打開相機時,如果沒有權限,只會提示你去設置打開,並不會讓你直接點按鈕跳轉。
咸魚雖然是可以直接跳轉設置,但返回時依然重啟了應用。
不知道有沒有人解決了該問題。
歡迎留言告知下~