如何以编程方式在iOS 11+中打开“设置”>“隐私”>“位置服务”?

时间:2018-09-12 18:44:53

标签: ios objective-c ios11

如果locationServicesEnabled返回false,则提示用户启用其定位服务。以下网址适用于10.0+版本,可将用户重定向到“设置”应用,然后直接重定向到“位置服务”屏幕:

URL(字符串:“ App-Prefs:root = Privacy&path = LOCATION”)

但是,这在iOS 11中不起作用。它会打开“设置”应用程序,但不会深入到“定位服务”。谁知道iOS 11+的新URL是什么?

2 个答案:

答案 0 :(得分:2)

Apple发布了this link中明确允许的URL列表。不幸的是,如果您使用其他URL(例如您尝试使用的URL),则会使您的应用程序被App Store拒绝。

简短的回答:您不能在不违反App Store规则的情况下做自己想做的事情。

答案 1 :(得分:1)

使用此-

UIApplication.shared.open(URL(string:UIApplicationOpenSettingsURLString)!)

使用App-prefs可能会导致应用商店中的应用被拒绝。

或者您也可以尝试此操作-

if let bundleId = Bundle.main.bundleIdentifier,
let url = URL(string: "\(UIApplication.openSettingsURLString)&path=LOCATION/\(bundleId)") {
    UIApplication.shared.open(url, options: [:], completionHandler: nil)
}