我需要访问用户照片,为此我请求许可。有可能的结果:
我的问题:如何在不重新启动应用程序的情况下刷新应用程序的权限设置。与我的问题类似的问题已发布here.
修改
我的应用程序是基于导航控制器的应用程序,我在我的控制器viewDidLoad
中检查访问权限。如果我弹出并再次推动控制器,我只是尝试刷新请求权限。没有运气,结果相同 - 它仍然表示许可被拒绝。
修改2:检查权限的代码
func requestAccess() -> Void {
PHPhotoLibrary.requestAuthorization {
status in
switch(status) {
case .notDetermined, .denied :
// perform relavent action
break
case .authorized , .restricted :
// perform relavent action
break
}
}
}
答案 0 :(得分:3)
iOS更改隐私设置后会杀死您的应用。下次点击应用程序图标后,您的应用程序将从头开始。 application:didFinishLaunching被调用,依此类推。所以你不需要更新权限。
答案 1 :(得分:0)
在您的AppDelegate中,您可以在applicationDidBecomeActive
中使用逻辑来重新查询权限存储以获取更新的权限。
在视图的viewDidLoad中,您检查权限,可以像这样观察通知;
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: #selector(yourClass.applicationDidBecomeActive(_:)),
name: UIApplicationDidBecomeActiveNotification,
object: nil)
答案 2 :(得分:0)
以下代码是Objective-C。
我认为你可以在用户点按按钮时执行此操作:
PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];
if (status == PHAuthorizationStatusNotDetermined) {
// ask for authorization
[PHPhotoLibrary requestAuthorization...
} else if (status == PHAuthorizationStatusAuthorized) {
// continue accessing photos
} else {
// access denied, go to settings if you want
}