ios - 打开位置设置在 iOS 11 中不起作用

标签 ios objective-c location-services

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

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

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

但它只是重定向到设置,而不是位置或蓝牙设置。有人知道是否有办法重定向到 iOS 位置设置吗?

谢谢

最佳答案

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 被视为私有(private) API,唯一记录的首选项 URL 是 UIApplicationOpenSettingsURLString 。显然,这与所使用的编程语言无关;相关:

粗略地说,您无法在 iOS 11 上再进行此类导航。

关于ios - 打开位置设置在 iOS 11 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49486705/

相关文章:

ios - 完成 Facebook 登录后更改 View

objective-c - 我在 Objective C 中的调整中未声明的标识符 "UIColor"

android - GoogleApiClient 中的 getLastLocation() 始终为 null

android - 融合位置提供程序意外行为

ios - UITableView选择——多选

objective-c - 如何在 iOS 上试验私有(private) API?

ios - 为什么当我隐藏图像时状态栏会向后滑动 20 点?

ios - 更改自定义 tableViewCell 的背景颜色

ios - 有时在 CLI 上运行 xcode 测试会返回 "manager not ready"

安卓地理围栏 java.lang.IllegalStateException : GoogleApiClient is not connected yet