从另一个应用程序以编程方式在iOS设置应用程序中打开键盘的设置屏幕

时间:2015-10-28 10:16:38

标签: ios ios-keyboard-extension

我们如何以编程方式直接进入以下任何iOS设置应用程序的屏幕

Keyboard Screen enter image description here

3 个答案:

答案 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