18

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

1)是否可以使用 openURL 打开设置应用程序?

2)从另一个应用程序打开设置应用程序

3) iOS 启动设置 -> 限制 URL 方案

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

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

我仍然看到很多应用程序主要是基于位置的,它们要求用户允许打开位置服务并在设置->隐私下直接进入位置服务。下面是安装在运行 iOS 6.1 的设备上的 App 的屏幕截图,显示点击 Settings 可以直接进入Location Services

我试图在我的应用程序中运行代码,但它不起作用(我想将用户带到设置页面以允许我的应用程序直接从我的应用程序访问联系信息)。如果 Apple 为此禁用了 URL 方案,为什么还有很多应用程序仍在使用它?

在此处输入图像描述

4

2 回答 2

26

对于与定位等服务相关的应用程序,当它们第一次请求访问时,操作系统将通过链接到设置的按钮发出警报。这不是由应用程序执行的,而是由操作系统的底层安全性执行的。

正如您所提到的,iOS 6 删除了自己执行此操作的功能。

于 2013-03-28T12:46:47.763 回答
16

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

在斯威夫特:

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

斯威夫特 4:

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

在 Objective-C 中

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
于 2014-11-27T09:23:34.523 回答