总结:
iOS/App Store 是否可以在应用升级时重置应用的位置服务权限?
详细:
在我们最近的应用升级中,我们相信,之前因启用某些功能而授予我们的应用“始终”定位服务权限的相当多的用户在首次启动时会收到“使用中定位服务”提示。我们的应用程序的新版本。由于此权限提示没有上下文,我们的许多用户此时可能选择了“不允许”。
据我所知,我们的应用无法通过代码重置用户的权限设置。有谁知道某个版本的 iOS 和/或设备组合会在应用升级时导致此行为?
我们的应用只有在授权状态设置为 kCLAuthorizationStatusNotDetermined 时才会提示用户提供定位服务权限。否则我们将开始请求位置更新。
这是我们应用程序的启动代码片段:
CLLocationManager *lmFollowMe = [[CLLocationManager alloc] init];
[lmFollowMe setDesiredAccuracy:kCLLocationAccuracyKilometer];
[lmFollowMe setDistanceFilter:1000];
[lmFollowMe setDelegate:self];
if ([lmFollowMe respondsToSelector:@selector(setAllowsBackgroundLocationUpdates:)]) {
[lmFollowMe setAllowsBackgroundLocationUpdates:NO];
}
[self setFollowMeLocationManager:lmFollowMe];
...
if ([CLLocationManager locationServicesEnabled] == YES) {
CLAuthorizationStatus status = [CLLocationManager authorizationStatus];
if (status == kCLAuthorizationStatusDenied) {
...
} else if (status == kCLAuthorizationStatusRestricted) {
...
} else if (status == kCLAuthorizationStatusNotDetermined) {
if ([self followMeStarted] == NO) {
[self setFollowMeStarted:YES];
[[self followMeLocationManager] requestWhenInUseAuthorization];
}
} else {
[[self followMeLocationManager] startUpdatingLocation];
}
...
谢谢!
最佳答案
您不能通过代码更改位置权限,但如果用户拒绝位置权限,那么您可以使用'设置' 和'取消' 按钮显示询问位置权限的警报.
如果用户点击“设置”,您可以将用户重定向到应用程序的设置页面,以通过以下代码更新位置权限。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
谢谢。
关于ios - 在 iOS 上升级应用程序时重置位置服务权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57676777/