繁体   English   中英

在iOS上升级应用后重置位置服务权限

[英]Location Services Permission reset upon app upgrade on iOS

摘要:

iOS / App Store是否可以在应用升级时重置应用的位置服务权限?

详细:

在我们最近进行的应用升级中,我们相信,由于启用了某些功能,先前已向我们的应用授予“始终”位置服务权限的许多用户在首次启动新版本的“使用中”时出现了位置服务提示我们的应用程序。 由于此权限提示周围没有上下文,因此我们很多用户目前可能选择了“不允许”。

AFAIK,我们的应用程序无法通过代码重置用户的权限设置。 是否有人知道某个特定版本的iOS和/或设备组合会在应用程序升级时导致此行为?

我们的应用程序唯一会提示用户输入位置服务权限的时间是,如果authorizationStatus设置为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]];

谢谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM