iOS 10上设置的自定义URL方案?

时间:2016-06-21 09:24:46

标签: settings launch url-scheme ios10

任何想法在iOS 10上设置的自定义URL方案发生了什么? 苹果公司是否仍然允许第三方应用程序通过iOS10上的URL方案从应用程序启动iOS设置?旧的URL方案不再起作用了!

3 个答案:

答案 0 :(得分:10)

以前在iOS 8+上启动根“设置”应用程序的方法都没有得到Apple的正式支持,所以不幸的是我们不能依赖它们。在App Store审核期间,即使其他人已获得批准,也可能会拒绝依赖未记录行为的应用程序 - 即使之前已批准相同的应用程序!

我也无法找到任何解决方法,因此您的选择似乎是:

  1. 打开特定于应用的网址(详见许多地方,包括@ alvin-varghese上面的回答),然后让用户向后导航。 (糟糕的用户体验,因为它涉及用户知道从应用列表向上滚动到主要设置部分。)

  2. 在您的应用中使用说明屏幕或提醒,以告知用户如何自行查找。 (不是更好,但至少不会陷入一个没有路标的陌生环境。)

  3. 似乎没有一种官方支持的方式在iOS 10中实现这一点,正如您所指出的,它似乎是旧的方式(将prefs方案添加到您的Info.plist文件并使用openURL(_:))不再工作了。

答案 1 :(得分:5)

从iOS 10开始,一些事情发生了变化,

所以,对于像蓝牙这样的东西,你需要写下面的代码行,

Swift 3.0:

func openBluetoothSettings(){
        let urlBTSet = URL(string: "App-Prefs:root=Bluetooth")
        let objApp = UIApplication.shared
        objApp.openURL(urlBTSet!)
    }

目标-C

-(void) openBluetoothSettings{
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"App-Prefs:root=Bluetooth"]];
}

所以,在上面的代码中他们改变的是字符串需要添加“App-Prefs:root = Bluetooth”(这是打开蓝牙设置的例子)

不要忘记:'转到taget - >信息 - >网址类型 - >在URL Schemes'

中添加“prefs”

答案 2 :(得分:1)

使用这个,它有效。

if let url = URL(string: UIApplicationOpenSettingsURLString) {
   UIApplication.shared().open(url, options: [:], completionHandler: nil)
 }