關於iOS應用通過OpenURL在設置打開相機權限,然后原應用會立即崩潰(重啟)的理解


最近偶然發現的一個怪現象:

應用需要相機權限,如果檢測到沒有開啟權限,我們代碼內,通過openURL跳轉設置界面

 //打開應用設置
                let url:NSURL = NSURL(string: UIApplicationOpenSettingsURLString)!
                if UIApplication.shared.canOpenURL(url as URL){
                    UIApplication.shared.openURL(url as URL)
                }

 

這樣做,的確可以直接跳到設置內-本應用下-權限管理界面,我們可以直接開啟相機權限,但問題來了。。。

只要操作了相機權限,我們的應用就會立即崩潰,

此時:

如果你是調試模式,會直接在Appdelegate處崩潰

如果你是安裝后運行,點擊左上角的返回原應用,你會發現,應用是重新啟動了一遍。

 

這個問題怎么辦?

 

找了很多資料,發現是無法解決的一個系統bug。

 

分析后,個人理解是這樣:

iOS10之后:

對於應用,我們調整了某個權限,返回時,應用會重新啟動,以讓權限能夠生效。

 

這個問題,我查看了微信,咸魚兩款APP。

微信的解決辦法是打開相機時,如果沒有權限,只會提示你去設置打開,並不會讓你直接點按鈕跳轉。

咸魚雖然是可以直接跳轉設置,但返回時依然重啟了應用。

 

不知道有沒有人解決了該問題。

 

歡迎留言告知下~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM