iOS 權(quán)限設(shè)置后,運(yùn)行時的應(yīng)用會自動重啟

前言:

開發(fā)中,我們常常需要打開設(shè)置界面賦予我們的APP各種權(quán)限,以完成拍照,定位等功能。在iOS 10以前我們通常的做法是彈出帶按鈕的提示框,由用戶點(diǎn)擊確定后,自動跳轉(zhuǎn)入系統(tǒng)設(shè)置界面完成各項賦值操作后再返回APP。但在iOS 10之后,蘋果對APP權(quán)限的賦予有了新的規(guī)范,任何APP的權(quán)限一旦發(fā)生變化,重新回到APP時,都會造成該APP重啟進(jìn)入,由次會造成極其不佳的用戶體驗(比如輸入信息時,萬里長征只差最后一步拍照時,打開拍照權(quán)限后一切又得重來)。然而,蘋果設(shè)置如此我等也無能為力,只能采取迂回戰(zhàn)術(shù)提升用戶體驗!

解決方案:

方案1:參照用戶登錄信息緩存的策略,在跳轉(zhuǎn)到權(quán)限設(shè)置界面之前,我們可以將當(dāng)前控制器VC作為模型數(shù)據(jù)存儲到本地緩存中,每次應(yīng)用重啟時,先檢測本地是否有該類緩存,有則直接打開,無則正常進(jìn)入。該方案缺點(diǎn)在于,直接打開存儲VC時,因上級界面為空,故只能返回到首頁,無法正常返回上一級界面,同時需要將存儲VC中的相應(yīng)數(shù)據(jù)也緩存下來,打開VC時再提取顯示,提升用戶體驗。

方案2:比起方案1,方案2更加方便快捷,我們可以在用戶需要使用權(quán)限功能之前確保應(yīng)用權(quán)限已完成授予操作,由此避開相應(yīng)問題,比如在應(yīng)用啟動時,或者 權(quán)限所需 VC 剛進(jìn)入時就進(jìn)行權(quán)限檢測

附:

此處共享一個在應(yīng)用運(yùn)行時中直接打開該應(yīng)用的權(quán)限設(shè)置界面的方法:

leturl =NSURL.init(string:UIApplicationOpenSettingsURLString)

UIApplication.sharedApplication().openURL(url!)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,733評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 其實一直都無法覺得現(xiàn)在住的地方是家,雖然說還是會講我要回家了,但是就像是一個住的地方,沒有回到家的感覺。最近合併的...
    tracyni閱讀 189評論 1 0
  • 我有一朋友藍(lán)小雨,現(xiàn)在是做快消,業(yè)績還挺好的,在公司是銷冠級別的。但是有一顆奔騰的心,看見現(xiàn)在三農(nóng)挺火的,也就想回...
    打不死的小小強(qiáng)閱讀 357評論 0 1
  • ffffrtt閱讀 227評論 0 0

友情鏈接更多精彩內(nèi)容