任何想法在iOS 10上设置的自定义URL方案发生了什么? 苹果公司是否仍然允许第三方应用程序通过iOS10上的URL方案从应用程序启动iOS设置?旧的URL方案不再起作用了!
答案 0 :(得分:10)
以前在iOS 8+上启动根“设置”应用程序的方法都没有得到Apple的正式支持,所以不幸的是我们不能依赖它们。在App Store审核期间,即使其他人已获得批准,也可能会拒绝依赖未记录行为的应用程序 - 即使之前已批准相同的应用程序!
我也无法找到任何解决方法,因此您的选择似乎是:
打开特定于应用的网址(详见许多地方,包括@ alvin-varghese上面的回答),然后让用户向后导航。 (糟糕的用户体验,因为它涉及用户知道从应用列表向上滚动到主要设置部分。)
在您的应用中使用说明屏幕或提醒,以告知用户如何自行查找。 (不是更好,但至少不会陷入一个没有路标的陌生环境。)
似乎没有一种官方支持的方式在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)
}