答案 0 :(得分:40)
位置服务var string = 'filters=fuelType=D,make=[BMW,CITROEN,DACIA],price=(0,100)';
var result = string.replace(/,\s*(?=[^)^\]]*(?:\(|\[|$))/g, '&');
alert(result); // -> `filters=fuelType=D&make=[BMW,CITROEN,DACIA]&price=(0,100)`
为我工作。当我在设备而不是模拟器上进行测试时。
我不会列出我尝试过的不起作用的东西,这是一个很长的清单。
假定位置服务已禁用或权限被拒绝或未确定的用法示例:
App-Prefs:root=Privacy&path=LOCATION
答案 1 :(得分:11)
您可以直接打开它,就像使用下面的代码一样,
但首先在Info.plist的URL类型中设置URL Schemes
:
然后在特定事件的下面写一行:
在目标 - C :
中[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];
在 Swift :
UIApplication.sharedApplication().openURL(NSURL(string: "prefs:root=LOCATION_SERVICES")!)
希望这会对你有所帮助。
答案 2 :(得分:10)
我已经尝试了以上所有答案,但它不适用于iOS11 ..只是打开设置页面而不是应用程序设置..最后这个工作..
xsi:schemaLocation="http://www.springframework.org/schema/beans
^^^^
Swift 4.2:
UIApplication.shared.open(URL(string:UIApplicationOpenSettingsURLString)!)
参考:https://developer.apple.com/documentation/uikit/uiapplicationopensettingsurlstring?language=swift
答案 3 :(得分:7)
Swift 4.2
直接进入您的应用程序设置,如下所示。不要忘记输入您的包标识符 -
if let bundleId = Bundle.main.bundleIdentifier,
let url = URL(string: "\(UIApplication.openSettingsURLString)&path=LOCATION/\(bundleId)")
{
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
答案 4 :(得分:5)
已测试SWIFT 4:
唯一避免被拒绝并打开自己应用的位置首选项的方法是:
if let bundleId = Bundle.main.bundleIdentifier,
let url = URL(string: "\(UIApplication.openSettingsURLString)&path=LOCATION/\(bundleId)") {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
答案 5 :(得分:3)
首先:
添加网址
转到项目设置 - >信息 - >网址类型 - >添加新的URL方案
见下图:
第二名:
使用以下代码打开位置设置:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];
答案 6 :(得分:2)
第1步:点击项目名称>>目标>> info>>网址类型
第2步:
-(IBAction)openSettingViewToEnableLocationService:(id)sender
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=LOCATION_SERVICES"]];
}
答案 7 :(得分:1)
实际上有更简单的解决方案。它会显示您的应用设置,包括位置服务/相机访问等:
func showUserSettings() {
guard let urlGeneral = URL(string: UIApplicationOpenSettingsURLString) else {
return
}
UIApplication.shared.open(urlGeneral)
}
答案 8 :(得分:1)
Swift 5+
Easy Way Direct您打开的申请页面将打开
if let BUNDLE_IDENTIFIER = Bundle.main.bundleIdentifier,
let url = URL(string: "\(UIApplication.openSettingsURLString)&path=LOCATION/\(BUNDLE_IDENTIFIER)") {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
答案 9 :(得分:0)
将prefs添加为url类型后,请使用以下代码直接转到应用程序的位置设置。
if let url = URL(string: "App-prefs:root=LOCATION_SERVICES") {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
答案 10 :(得分:0)
您想安全吗?使用UIApplicationOpenSettingsURLString
,它将打开应用设置,不使用深层链接。
使用App-prefs
的应用将被拒绝,正如许多子评论所说。
https://github.com/mauron85/cordova-plugin-background-geolocation/issues/394
答案 11 :(得分:0)
如果您设置了locationManager.startUpdatingLocation()并在iPhone上将其禁用,它将自动向您显示一个AlertView,其中包含用于打开和激活位置的选项。