iHu*_*ulk 8 ios ios-keyboard-extension
我们如何以编程方式直接进入iOS设置应用程序的任何下面提到的屏幕
joe*_*ern 16
UPDATE
正如其他用户指出的那样,这个解决方案不再适用于iOS10.如果有人知道如何让它在iOS10中运行,请告诉我们.
iOS <10的解决方案:
要打开(您自己的应用程序)的设置,您可以使用UIApplicationOpenSettingsURLString常量:
if let settingsURL = NSURL(string: UIApplicationOpenSettingsURLString) {
UIApplication.sharedApplication().openURL(settingsURL)
}
Run Code Online (Sandbox Code Playgroud)
这是在iOS 8中引入的,因此您可以在运行iOS8或更高版本的设备上使用它.但这只会打开您自己的应用程序的设置.不是键盘设置.如果您的应用没有自己的设置,则只会在其主页上打开"设置"应用.
在过去(iOS 5.1之前),您可以打开设置URL并直接转到"设置"应用中的任何子页面.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)
}
Run Code Online (Sandbox Code Playgroud)
或者更深入:
if let settingsURL = NSURL(string: "prefs:root=General&path=Keyboard/KEYBOARDS") {
UIApplication.sharedApplication().openURL(settingsURL)
}
Run Code Online (Sandbox Code Playgroud)
编辑:
正如iHulk在评论中提到的,您可能必须prefs在项目的Info.plist文件中添加URL方案才能使其工作.
从iOS 10开始,应该使用"App-Prefs:root"而不是"prefs:root".见下面的Objective C代码.经测试,代码工作正常,但苹果可能因此而拒绝该应用.
注意:正如所指出的,这仅适用于ios 10
NSString *settingsUrl= @"App-Prefs:root=General&path=Keyboard";
if ([[UIApplication sharedApplication] respondsToSelector:@selector(openURL:options:completionHandler:)]) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:settingsUrl] options:@{} completionHandler:^(BOOL success) {
NSLog(@"URL opened");
}];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4485 次 |
| 最近记录: |