我正在开发一款适用于iPhone的应用程序,它使用相机扫描条形码和拍照。当我们没有Camera访问权限且用户启用了Camera Access时,应用程序崩溃并重新打开。
你能帮助我解决这个问题吗?
提前致谢。
答案 0 :(得分:72)
首次访问摄像头时,操作系统将自动显示权限提示。无论用户是允许还是拒绝提示,您的应用都将继续运行。如果用户在某个时刻更改了地址簿,日历,提醒,相机或照片权限,则iOS将SIGKILL
该应用。它采取此操作以确保应用程序不再拥有其拥有的任何先前授权的数据。当用户从“设置”应用程序移回第三方应用程序时,它将从头开始启动,现在具有“拒绝”授权状态。由于这种行为,我有两个建议:
检测权限何时被拒绝,并显示一些说明用户需要切换“设置”应用权限的UI。在iOS 8中,您可以使用[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]
直接将其带到应用的条目中。
实施某种状态恢复,以便在应用终止并重新启动时,它会将用户返回到先前可见的视图/功能。
Source(需要开发者帐户)
答案 1 :(得分:0)
您的建议是正确的。我提出了一个警报视图,要求用户进入“设置”应用以更改相机和联系人权限(如果他们之前拒绝了他们)。对我来说问题在于您的#2推荐。我深入了解注册过程并收集了注册信息,如姓名,电子邮件,出生日期。然后我有一个“请求权限”屏幕。当应用程序在被杀后重新启动时,我不再拥有此注册信息。我想,我可以在显示警报视图之前保存注册信息(到手机),然后在重新启动应用程序时,检查是否有任何先前存储的注册信息。如果是,请返回询问权限的屏幕,然后删除存储的注册信息。