我最近发现了很棒的 iOS5自定义设置网址,可以在这个很棒的website详细解释。
我发现这可行,将用户从我的应用程序导向设置应用程序:
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"prefs:root=General"]];
但似乎无法通过path
参数直接路由到限制路径:
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"prefs:root=General&path=Restrictions"]];
有没有人找到这方面的文件或能够使这项工作?
非常感谢任何见解。我正在尝试让用户启用应用内购买,而不是让用户手动点击限制(不是很明显)。
答案 0 :(得分:140)
AS @Nix Wang的回答这不适用于 IOS 10
警告:此方法不适用于运行iOS 5.1及更高版本的设备 - 请参阅下面的Hlung评论。
path
组件的名称可能与实际部分的名称不同,但您也可能无法直接从URL访问该部分。我发现了一个可能的URL列表,并且没有限制,可能它还没有找到。
“设置”应用中当前已知的网址列表:
答案 1 :(得分:47)
从iOS8开始,您可以使用以下命令打开内置的“设置”应用
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
实际的网址字符串为@"app-settings:"
。我尝试在字符串中附加不同的部分("蓝牙"," GENERAL"等),但似乎只链接到主设置屏幕。如果您发现其他情况,请发布回复。
答案 2 :(得分:42)
如果您将prefs URL方案添加到iOS应用程序,它将允许您使用我们在iOS 5中可以使用的所有方案。我已经在iOS 9上测试过它,但我认为它可以在较旧版本上运行版本也是。
答案 3 :(得分:32)
更新
自iOS 10以来, prefs:
将无效。
答案 4 :(得分:22)
是的,看到了这个(以及更多),甚至在测试应用程序中实现了它。真的需要从苹果公司得到明确的一句话,但社区的共识意见是苹果公司在公开“发现/发布”后不允许使用它,因此包含它的应用程序将不被接受。
08/01/12更新:通过我的开发者帐户询问Apple是否有办法以编程方式启动WiFi设置对话框。以下是回复:
“我们的工程师已经审核了您的要求并得出结论 没有支持的方法来实现所需的功能 目前正在发货的系统配置。“
答案 5 :(得分:18)
在 iOS 9 中,它再次有效!
要打开设置>一般>键盘,我用:
prefs:root=General&path=Keyboard
此外,可以更进一步键盘:
prefs:root=General&path=Keyboard/KEYBOARDS
答案 6 :(得分:7)
我想在设置应用程序中打开蓝牙菜单,上面的路径(prefs:root = General& path = Bluetooth)对我来说不起作用。 最终为我工作的是
UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=Bluetooth")!)
确保首先定义prefs
网址方案。
答案 7 :(得分:5)
iOS10的解决方案。工作正常。
function eris_entry_header() {
if ( !is_single() && ( !is_search() && ( 'link' == get_post_format() || 'quote' == get_post_format() ) ) ) {
return;
}
$time_string = '<time class="entry-date published updated" datetime="%1$s">%2$s</time>';
if ( get_the_time( 'U' ) !== get_the_modified_time( 'U' ) ) {
$time_string = '<time class="entry-date published" datetime="%1$s">%2$s</time><time class="updated" datetime="%3$s">%4$s</time>';
}
$edit_post_link = '';
if ( is_user_logged_in() ) {
$edit_post_link = '<a href="' . esc_url( get_edit_post_link() ) . '"></a>';
}
$time_string = sprintf( $time_string,
esc_attr( get_the_date( 'c' ) ),
esc_html( get_the_date() ),
esc_attr( get_the_modified_date( 'c' ) ),
esc_html( get_the_modified_date() )
);
$posted_on = sprintf(
esc_html_x( '%s', 'post date', 'eris' ),
'<a href="' . esc_url( get_permalink() ) . '" rel="bookmark">' . $time_string . '</a>'
);
if ( 'portfolio' == get_post_type() ) {
$categories_list = get_the_term_list( get_the_ID(), 'ct_portfolio', '', ' ', '' );
} else {
$categories_list = get_the_term_list( get_the_ID(), 'category', '', ' ', '' );
}
if ( is_single() ) {
the_title( '<h1 class="entry-title">', '</h1>' );
} else {
the_title( '<h2 class="entry-title"><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' );
}
printf( '<div class="entry-meta"><span class="category-list">%1$s</span><span class="post-date">%2$s</span><span class="edit-link">%3$s</span></div>', $categories_list, $posted_on, $edit_post_link );}
答案 8 :(得分:4)
从iOS10开始,您可以使用
UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root")!)
打开常规设置。
您也可以添加已知网址(您可以在最热门的答案中看到它们)来打开特定设置。例如,下面的一个打开touchID和密码。
UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root=TOUCHID_PASSCODE")!)
答案 9 :(得分:2)
以下是我发现的其他内容:
在我定义了“prefs”网址后,“prefs:root = Safari&amp; path = ContentBlockers”正在使用模拟器(iOS 9.1 英文 ),但不适用于模拟器(简体中文)。它只是跳转到Safari,而不是内容拦截器。如果您的应用是国际性的,请小心 更新:不知道为什么,现在我不能再跳进ContentBlockers,相同的代码,相同的版本,现在不起作用。 :(
关于真正的偏见(我的是iPhone 6S和iPad mini 2),“Safari”应该是“SAFARI”,“Safari”不能在真实设备上工作,“SAFARI”现在在模拟器上工作:
#if arch(i386) || arch(x86_64)
// Simulator
let url = NSURL(string: "prefs:root=Safari")!
#else
// Device
let url = NSURL(string: "prefs:root=SAFARI")!
#endif
if UIApplication.sharedApplication().canOpenURL(url) {
UIApplication.sharedApplication().openURL(url)
}
到目前为止,iPhone和iPad之间没有发现任何差异。
答案 10 :(得分:2)
适用于IOS 10上的应用程序通知设置(已测试)
if(&UIApplicationOpenSettingsURLString != nil){
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}
答案 11 :(得分:2)
答案 12 :(得分:0)
我在这里更新一条新闻。 使用'prefs:'只是不被Apple拒绝,我测试并检查批准到应用程序商店(2016年8月)。 THX。