Ios 获得访问权限后如何刷新权限
我需要访问用户的照片,为此我请求许可。有可能的结果:Ios 获得访问权限后如何刷新权限,ios,swift,permissions,Ios,Swift,Permissions,我需要访问用户的照片,为此我请求许可。有可能的结果: 授予的权限:在此情况下,应用程序将恢复正常运行 权限被拒绝:在这种情况下,应用程序显示一个警报,其中用户可以选择转到设置或忽略它。若用户选择goToSettings并提供对照片的访问,然后返回到应用程序,那个么它仍然会说并没有授予权限。权限仅在我重新启动应用程序时刷新 我的问题:如何在不重新启动应用程序的情况下刷新应用程序的权限设置。与我的问题类似的问题也被贴出来了 编辑: 我的应用程序是基于导航控制器的应用程序,我在控制器的viewDidL
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
}
}
}
在AppDelegate中,您可以在
ApplicationIDBecomeActive
中使用逻辑来重新查询权限存储以获取更新的权限
在viewDidLoad中,对于您检查权限的视图,您可以像这样观察通知
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: #selector(yourClass.applicationDidBecomeActive(_:)),
name: UIApplicationDidBecomeActiveNotification,
object: nil)
在AppDelegate中,您可以在
ApplicationIDBecomeActive
中使用逻辑来重新查询权限存储以获取更新的权限
在viewDidLoad中,对于您检查权限的视图,您可以像这样观察通知
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: #selector(yourClass.applicationDidBecomeActive(_:)),
name: UIApplicationDidBecomeActiveNotification,
object: nil)
下面的代码是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
}
下面的代码是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
}
当你更改隐私设置时,iOS会终止你的应用程序。下一次点击应用程序图标后,您的应用程序将从头开始。应用程序:调用didFinishLaunching等。因此,您无需更新权限。当您更改隐私设置时,iOS将终止您的应用程序。下一次点击应用程序图标后,您的应用程序将从头开始。应用程序:调用didFinishLaunching等。因此,您不需要更新权限。尝试过。不行,试过了。不工作。您在iOS设置中更改了什么设置?如果转到隐私->照片->应用程序并更改值,iOS 10上的应用程序将由iOS重新启动automatically@pilot34在“设置”中,我允许应用程序访问照片。我不清楚你所说的iOS 10应用程序自动重启是什么意思。我在iOS 10.2和9.3中尝试过,结果相同。当你更改隐私设置时,iOS会杀死你的应用程序。下一次点击应用程序图标后,您的应用程序将从头开始。应用程序:调用didFinishLaunching。如何检查权限?请尝试我的示例在iOS设置中更改什么设置?如果转到隐私->照片->应用程序并更改值,iOS 10上的应用程序将由iOS重新启动automatically@pilot34在“设置”中,我允许应用程序访问照片。我不清楚你所说的iOS 10应用程序自动重启是什么意思。我在iOS 10.2和9.3中尝试过,结果相同。当你更改隐私设置时,iOS会杀死你的应用程序。下一次点击应用程序图标后,您的应用程序将从头开始。应用程序:调用didFinishLaunching。如何检查权限?请尝试我的示例我知道我可以使用此代码获取状态,但这不是问题。回答前请仔细阅读问题。@Priyal我可以告诉你,它绝对不需要刷新。更改设置并返回应用程序后,照片将可访问。因此,我认为还有其他问题。当显示请求访问弹出窗口时,我能够获得状态。我试图做的是,如果用户拒绝许可,那么我会显示一个警报,要求通过设置启用访问。它有一个操作按钮,用户可以通过该按钮重定向到设置。当用户通过它访问应用程序时,当用户返回应用程序时,它也不会被反映出来。它只反映在我重新启动应用程序时。我知道我可以用这段代码获取状态,但这不是问题。回答前请仔细阅读问题。@Priyal我可以告诉你,它绝对不需要刷新。更改设置并返回应用程序后,照片将可访问。因此,我认为还有其他问题。当显示请求访问弹出窗口时,我能够获得状态。我试图做的是,如果用户拒绝许可,那么我会显示一个警报,要求通过设置启用访问。它有一个操作按钮,用户可以通过该按钮重定向到设置。当用户通过它访问应用程序时,当用户返回应用程序时,它也不会被反映出来。它只反映我重新启动应用程序的时间。任何人都可以共享苹果开发者的链接,该链接指定在更改权限后应用程序必须终止,因此我可以向客户端显示该链接,以证明其默认的苹果功能。提前谢谢。请大家分享苹果开发者的链接,该链接指定在更改权限后应用程序必须终止,这样我就可以把它展示给客户端,以证明它默认的苹果功能。提前谢谢。