iOS 权限设置后,运行时的应用会自动重启

前言:

开发中,我们常常需要打开设置界面赋予我们的APP各种权限,以完成拍照,定位等功能。在iOS 10以前我们通常的做法是弹出带按钮的提示框,由用户点击确定后,自动跳转入系统设置界面完成各项赋值操作后再返回APP。但在iOS 10之后,苹果对APP权限的赋予有了新的规范,任何APP的权限一旦发生变化,重新回到APP时,都会造成该APP重启进入,由次会造成极其不佳的用户体验(比如输入信息时,万里长征只差最后一步拍照时,打开拍照权限后一切又得重来)。然而,苹果设置如此我等也无能为力,只能采取迂回战术提升用户体验!

解决方案:

方案1:参照用户登录信息缓存的策略,在跳转到权限设置界面之前,我们可以将当前控制器VC作为模型数据存储到本地缓存中,每次应用重启时,先检测本地是否有该类缓存,有则直接打开,无则正常进入。该方案缺点在于,直接打开存储VC时,因上级界面为空,故只能返回到首页,无法正常返回上一级界面,同时需要将存储VC中的相应数据也缓存下来,打开VC时再提取显示,提升用户体验。

方案2:比起方案1,方案2更加方便快捷,我们可以在用户需要使用权限功能之前确保应用权限已完成授予操作,由此避开相应问题,比如在应用启动时,或者 权限所需 VC 刚进入时就进行权限检测

附:

此处共享一个在应用运行时中直接打开该应用的权限设置界面的方法:

leturl =NSURL.init(string:UIApplicationOpenSettingsURLString)

UIApplication.sharedApplication().openURL(url!)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,900评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,799评论 19 139
  • 其實一直都無法覺得現在住的地方是家,雖然說還是會講我要回家了,但是就像是一個住的地方,沒有回到家的感覺。最近合併的...
    tracyni阅读 1,196评论 1 0
  • 我有一朋友蓝小雨,现在是做快消,业绩还挺好的,在公司是销冠级别的。但是有一颗奔腾的心,看见现在三农挺火的,也就想回...
    打不死的小小强阅读 2,578评论 0 1
  • ffffrtt阅读 1,443评论 0 0