【问题标题】:Open location settings not working in iOS 11打开位置设置在 iOS 11 中不起作用
【发布时间】:2018-09-04 07:36:43
【问题描述】:

我正在使用此代码重定向到该位置的 iOS 设置:

NSURL *url = [NSURL URLWithString:@"App-Prefs:root=LOCATION_SERVICES"];

if ([[UIApplication sharedApplication] canOpenURL:url]) {
    [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];
}

但它只是重定向到设置而不是位置或蓝牙设置。有人知道是否有任何方法可以重定向到 iOS 位置设置吗?

谢谢

【问题讨论】:

  • 用户现在可以覆盖我们的 requestAlwaysAuthorization 并将其降级为 requestWhenInUseAuthorization - 这意味着作为开发人员,我们现在必须在 Info.plist 中提供这两个描述添加一个新键 NSLocationAlwaysAndWhenInUseUsageDescription
  • 我的 Info.plist 文件中已经有它,但我认为问题出在这个 'App-Prefs:root=LOCATION_SERVICES'
  • 您是否查看过此页面:stackoverflow.com/questions/44424092/…?当我以前遇到同样的问题时,它对我很有用

标签: ios objective-c location-services


【解决方案1】:

声明url为:

NSURL *url = [NSURL URLWithString:@"App-Prefs:root=LOCATION_SERVICES"];

因此:

if ([[UIApplication sharedApplication] canOpenURL:url]) {
    [[UIApplication sharedApplication] openURL: url];
}

注意:

上述方法应该适用于 iOS 10.x 及更低版本(您可以查看:How to programmatically open the WIFI settings in Objective-C on iOS 10)。但是,Apple支持“app-prefs”URL 方案!首选项 URL 被视为私有 API,唯一记录在案的首选项 URL 是 UIApplicationOpenSettingsURLString。显然,与使用的编程语言无关;相关:

粗略地说,您在 iOS 11 上无法再进行这样的导航了。

【讨论】:

  • 它看起来和 completionHandler 一样,我认为 'App-Prefs:root=LOCATION_SERVICES' 在 iOS 10 及更高版本中已被弃用,但我正在考虑是否有其他方法。跨度>
  • @EgzonArifi 所以,根据我的回答,尝试打开网址会引导您进入设置,对吗?
  • 是的,但是计划重定向到设置>隐私>位置服务。谢谢
【解决方案2】:

首先:点击项目名称>>目标>>信息>>url类型>>URL方案。 例如,您可以看到屏幕截图。

然后使用代码:

-(IBAction)openSettingViewToEnableLocationService:(id)sender
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];
}

【讨论】:

    【解决方案3】:

    您可以使用UIApplicationOpenSettingsURLString。如果您的应用程序使用位置数据或蓝牙,您将在那里看到位置和蓝牙设置。

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
    

    【讨论】:

      猜你喜欢
      • 2018-04-13
      • 2018-04-05
      • 1970-01-01
      • 2016-06-14
      • 1970-01-01
      • 2017-08-23
      • 2018-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多