iPhone-从我的应用程序iOS 6打开设置

时间:2013-03-28 12:44:17

标签: iphone ios objective-c

我知道有很多与此相关的问题。

1)is it possible to open Settings App using openURL?

2)Opening the Settings app from another app

3)iOS Launching Settings -> Restrictions URL Scheme

我已将这些问题作为参考,但这并不能解决我的问题。我知道使用openURL方法可以打开“设置”,但这仅适用于iOS 5.0 - 5.0.1。在iOS 5.1中,它已被弃用。

  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"]]; 

我仍然看到许多应用程序主要基于位置,要求用户启用位置服务的权限,并直接转到设置 - >下的位置服务。隐私。下面显示安装在iOS 6.1运行设备上的应用程序的屏幕截图显示,点按“设置”会将您带到位置服务

我尝试在我的应用程序中运行代码,但它无法正常工作(我想将用户带到“设置”页面,以允许我的应用程序直接从我的应用程序访问联系人信息)。如果Apple为此禁用了URL方案,那么许多应用程序仍在使用它?

enter image description here

2 个答案:

答案 0 :(得分:26)

对于与位置等服务相关的应用程序,当他们第一次请求访问时,操作系统会使用链接到“设置”的按钮抛出警报。这不是由应用程序操作,而是由操作系统的底层安全性操作。

iOS 6删除了您自己提到的功能。

答案 1 :(得分:16)

您可以在iOS8中以编程方式打开设置应用程序,但不能在早期版本的iOS中打开。

在Swift中:

UIApplication.sharedApplication().openURL(NSURL(string:UIApplicationOpenSettingsURLString));

Swift 4:

if let url = NSURL(string: UIApplicationOpenSettingsURLString) as URL? {
    UIApplication.shared.openURL(url)
}

在Objective-C

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];