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



如果 locationServicesEnabled 返回 false,我会提示用户启用其定位服务。以下 URL 适用于 10.0+,将用户重定向到"设置"应用并直接重定向到"定位服务"屏幕:

URL(字符串: "App-Prefs:root=Privacy&path=LOCATION"(

但是,这在iOS 11中不起作用。它会打开"设置"应用,但不会向下钻取到"定位服务"。有人知道iOS 11 +的新URL是什么吗?

Apple在此链接上发布了他们明确允许的URL列表。 不幸的是,如果您使用其他URL(例如您尝试使用的URL(,这可能会使您的应用程序从App Store中被拒绝。

简短回答:如果不违反App Store规则,您就无法做您想做的事情。

在iOS 15中,这对我不起作用,因为它只是打开常规设置页面,但根据shivi_shub答案和他的评论,我尝试了以下内容:

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

它把我带到了位置设置,这至少离我真正想要显示的设置页面更近了几步。

所以我想我们可以做:

if let url = URL(string: "(UIApplication.openSettingsURLString)&path=LOCATION_SERVICES") {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}

使用这个-

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

使用应用偏好可能会导致应用商店中的应用被拒绝。

或者你也可以试试这个——

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

相关内容

  • 没有找到相关文章

最新更新