答案 0 :(得分:16)
<强>更新强>
正如其他用户指出的那样,这个解决方案不再适用于iOS10。如果有人知道如何让它在iOS10中运行,请告诉我们。
适用于iOS的解决方案&lt; 10:强>
要打开(您自己的应用程序)的设置,您可以使用UIApplicationOpenSettingsURLString
常量:
if let settingsURL = NSURL(string: UIApplicationOpenSettingsURLString) {
UIApplication.sharedApplication().openURL(settingsURL)
}
这是在iOS 8中引入的,因此您可以在运行iOS8或更高版本的设备上使用它。但这只会打开您自己的应用程序的设置。不是键盘设置。如果您的应用没有自己的设置,则只会在其主页上打开“设置”应用。
在过去(iOS 5.1之前),您可以打开设置网址,直接转到“设置”应用中的几乎任何子页面。 Apple在iOS 5.1中删除了此功能。
然而它似乎在iOS 8和9中再次起作用。它没有被Apple官方记录,但似乎有效,但我不确定这是多么可靠。它适用于我的iOS 9.1 iPhone,但不适用于模拟器。
因此,请谨慎,您可以尝试打开键盘设置:
if let settingsURL = NSURL(string: "prefs:root=General&path=Keyboard") {
UIApplication.sharedApplication().openURL(settingsURL)
}
或者更深入:
if let settingsURL = NSURL(string: "prefs:root=General&path=Keyboard/KEYBOARDS") {
UIApplication.sharedApplication().openURL(settingsURL)
}
修改强>
正如iHulk在评论中提到的那样,您可能需要将prefs
添加到项目的Info.plist文件中的URL方案中,以使其工作。
答案 1 :(得分:9)
自iOS 10&#34; App-Prefs:root&#34;应该使用而不是&#34; prefs:root&#34;。见下面的Objective C代码。经测试,代码工作正常,但苹果可能因此而拒绝该应用程序 注意:正如所指出的,这仅适用于ios 10
DeatilPage
答案 2 :(得分:1)
我从Apple评论家那里得到的最新消息: 您的应用程序托管扩展程序,但它不符合App Extension编程指南。
具体来说,您的应用会将用户直接带到键盘设置页面,而不是将用户带到应用的特定设置页面。请确保您的应用仅将用户带到您的应用设置页面。
当我重定向到:prefs:root = General&amp; path = Keyboard / KEYBOARDS