【发布时间】:2021-06-29 08:20:32
【问题描述】:
我希望我的定制应用能够打开 iOS 原生设置页面,特别是用于将新声音安装到您的设备的设置。
如何在 Objective C 中做到这一点?
我看到您可以使用 UIApplicationOpenSettingsURLString 打开设置,但我需要转到用户当前语言的特定安装语音设置页面,如下所示:
此页面位于:设置 -> 辅助功能 -> 语音内容 -> 语音 ->(您的语言)
进入 Voices 页面,用户也可以在其中选择语言。
我想我可以尝试使用 open() 目标 C 函数来打开自定义 URI 方案,但我需要知道我需要确切的 URI 方案...
编辑:这是我目前正在尝试做的:
NSString *voiceSettings = @"prefs:root=ACCESSIBILITY&path=SPEECH_TITLE#QuickSpeakAccents";
NSString *cleanQuery = [voiceSettings stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: [NSString stringWithFormat:cleanQuery]] options:@{} completionHandler:nil];
但是它失败了:
Failed to open URL prefs:root=ACCESSIBILITY&path=SPEECH_TITLE#QuickSpeakAccents: Error Domain=NSOSStatusErrorDomain Code=-10814 "(null)" UserInfo={_LSLine=229, _LSFunction=-[_LSDOpenClient openURL:options:completionHandler:]}
我错过了什么吗?
【问题讨论】:
-
查看gist.github.com/deanlyoung/368e274945a6929e0ea77c4eca345560 尝试将
prefs替换为App-prefs,看看效果如何。 -
由于 Gereon 的回答,我认为我唯一能想到的没有拒绝的选择是创建一个对话框屏幕,显示进入语音安装页面的步骤。老实说,我觉得这很荒谬且违反直觉。
标签: ios objective-c