gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 16:22:11 25 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/15890833/

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