gpt4 book ai didi

ios - 用户拒绝使用后,如何提示用户打开位置服务

转载 作者:IT王子 更新时间:2023-10-29 07:32:16 26 4
gpt4 key购买 nike

我有一个带有显式用户交互的应用程序,它利用了用户的当前位置。如果用户拒绝访问定位服务,我仍然希望后续使用提示用户转到设置并为我的应用重新启用定位服务。

我想要的行为是内置 map 应用程序的行为:

  1. 在“设置”>“通用”>“重置”>“重置位置警告”中重置位置警告。
  2. 启动 map 应用。
  3. 点按左下角的“当前位置”按钮。
  4. map 提示““ map ”想使用您的当前位置” | “不允许” | “允许”。
  5. 选择“不允许”选项。
  6. 再次点按左下角的“当前位置”按钮。
  7. map 提示“打开位置服务以允许“ map ”确定您的位置” | “设置” | “取消”。

在我自己的应用程序中,相同的基本流程导致我的 CLLocationManagerDelegate -locationManager:didFailWithError: 方法在最后一步被调用并出现 kCLErrorDenied 错误,并且没有为用户提供打开“设置”应用程序以更正它的选项。

我可以显示我自己的警报以响应错误,但它无法像操作系统可以提供的内置 map 应用程序所使用的警报一样启动“设置”应用程序。

我缺少的 CLLocationManager 类中是否有某些东西能够给我这种​​行为?

最佳答案

在 iOS8 中,您终于可以通过 openURL 将用户链接到“设置”应用。例如,您可以创建一个带有单个按钮的 UIAlertView,将用户带到“设置”应用:

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:ICLocalizedString(@"LocationServicesPermissionTitle")
message:ICLocalizedString(@"LocationPermissionGeoFenceMessage")
delegate:self
cancelButtonTitle:@"Settings"
otherButtonTitles:nil];
[alert show];

在您的 UIAlertView 委托(delegate)中:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
[alertView dismissWithClickedButtonIndex:buttonIndex animated:YES];
[[UIApplication sharedApplication] openURL: [NSURL URLWithString: UIApplicationOpenSettingsURLString]];
}

关于ios - 用户拒绝使用后,如何提示用户打开位置服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4891950/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com