好吧,我知道关于它有很多问题,但它们都是很久以前的事了。
所以。我知道这是可能的,因为地图应用程序做到了。
在地图应用程序中,如果我关闭这个应用程序的本地化,它会给我发送一条消息,如果我按ok,“设置应用程序”就会打开。 我的问题是,这怎么可能呢? 如何从我自己的应用程序打开“设置应用程序”?
基本上我需要做同样的事情,如果用户关闭了我的应用程序的位置,那么我就会给他显示一条信息,上面写着将打开“设置应用程序”
好吧,我知道关于它有很多问题,但它们都是很久以前的事了。
所以。我知道这是可能的,因为地图应用程序做到了。
在地图应用程序中,如果我关闭这个应用程序的本地化,它会给我发送一条消息,如果我按ok,“设置应用程序”就会打开。 我的问题是,这怎么可能呢? 如何从我自己的应用程序打开“设置应用程序”?
基本上我需要做同样的事情,如果用户关闭了我的应用程序的位置,那么我就会给他显示一条信息,上面写着将打开“设置应用程序”
当前回答
在Swift 3 / iOS 10+中看起来是这样的
if let url = URL(string: "App-Prefs:root=LOCATION_SERVICES") {
UIApplication.shared.open(url, completionHandler: .none)
}
其他回答
你可以在iOS 5.0及更高版本上使用这个:这个不再有效。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]];
您可以使用下面的代码。
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
斯威夫特3:
guard let url = URL(string: UIApplicationOpenSettingsURLString) else {return}
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
// Fallback on earlier versions
UIApplication.shared.openURL(url)
}
正如Karan Dua提到的,这现在可以在iOS8中使用UIApplicationOpenSettingsURLString,参见苹果的文档。
例子:
斯威夫特4.2
UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!)
在Swift 3中:
UIApplication.shared.open(URL(string:UIApplicationOpenSettingsURLString)!)
在Swift 2中:
UIApplication.sharedApplication().openURL(NSURL(string:UIApplicationOpenSettingsURLString)!)
在objective - c中
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
iOS 8之前:
你不能。正如你所说,这已经被报道了很多次,弹出窗口要求你打开位置服务是由苹果公司提供的,而不是由应用程序本身。这就是为什么它能够打开设置应用程序。
以下是一些相关的问题和文章:
是否可以使用openURL打开设置应用程序?
以编程方式打开设置应用程序(iPhone)
当用户按下按钮时,如何打开设置应用程序?
iPhone:从应用程序打开应用程序首选项面板
通过单击应用程序首选项中的一个条目打开UIPickerView -如何?
打开设置应用程序?
iOS:你的设置是错误的
来自@Yatheeshaless的回答:
你可以在iOS8中以编程方式打开设置应用程序,但在早期版本的iOS中不能。
迅速:
UIApplication.sharedApplication().openURL(NSURL(string:UIApplicationOpenSettingsURLString)!)
斯威夫特4:
if let url = NSURL(string: UIApplicationOpenSettingsURLString) as URL? {
UIApplication.shared.openURL(url)
}
Swift 4.2 (BETA):
if let url = NSURL(string: UIApplication.openSettingsURLString) as URL? {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
objective - c:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];