iOS启动设置->;限制URL方案
我最近发现了非常棒的iOS5自定义设置URL方案,可以在下面这篇文章中详细解释 我发现这是可行的,将用户从我的应用程序定向到设置应用程序:iOS启动设置->;限制URL方案,ios,iphone,settings,url-scheme,uiapplication,Ios,Iphone,Settings,Url Scheme,Uiapplication,我最近发现了非常棒的iOS5自定义设置URL方案,可以在下面这篇文章中详细解释 我发现这是可行的,将用户从我的应用程序定向到设置应用程序: [[UIApplication sharedApplication] openURL: [NSURL URLWithString:@"prefs:root=General"]]; 但似乎无法通过路径参数直接路由到限制路径: [[UIApplication sharedApplication] openURL: [NSURL URLWit
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"prefs:root=General"]];
但似乎无法通过路径
参数直接路由到限制路径:
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"prefs:root=General&path=Restrictions"]];
是否有人找到了相关的文档,或者能够做到这一点
如有任何见解,将不胜感激。我试图让用户启用应用内购买,而不是让用户手动点击限制(不是很明显)。正如我的回答,这在IOS 10中不起作用
警告:此方法不适用于运行iOS 5.1及更高版本的设备-请参阅下面的Hlung评论。
path
组件可能与实际部分的名称不同,但也可能当前无法直接从URL访问该部分。我发现了一个可能的URL列表,上面没有限制,也许还没有找到
设置应用程序中当前已知URL的列表:
- prefs:root=General&path=About
- 首选项:根=常规&路径=辅助功能
- 首选项:根=飞机模式
- prefs:root=General&path=AUTOLOCK
- 首选项:根=常规&路径=使用情况/蜂窝\u使用情况
- prefs:root=亮度
- 首选项:根=常规&路径=蓝牙
- 首选项:根=常规&路径=日期和时间
- prefs:root=FACETIME
- prefs:root=General
- 首选项:根=常规&路径=键盘
- prefs:root=CASTLE
- 首选项:根=城堡&路径=存储和备份
- 首选项:根=常规&路径=国际
- prefs:root=位置\服务
- prefs:root=帐户设置
- prefs:root=音乐
- prefs:root=MUSIC&path=EQ
- prefs:root=MUSIC&path=VolumeLimit
- 首选项:根=常规&路径=网络
- 首选项:root=NIKE\u PLUS\u IPOD
- prefs:root=NOTES
- prefs:root=NOTIFICATIONS\u ID
- prefs:root=Phone
- prefs:root=照片
- prefs:root=General&path=managedConfiguration列表
- 首选项:根=常规&路径=重置
- 首选项:根=声音&路径=铃声
- prefs:root=Safari
- 首选项:根=常规&路径=助手
- prefs:root=声音
- prefs:root=General&path=SOFTWARE\u UPDATE\u链接
- prefs:root=STORE
- prefs:root=TWITTER
- prefs:root=General&path=USAGE
- prefs:root=视频
- 首选项:根=常规&路径=网络/VPN
- prefs:root=墙纸
- prefs:root=WIFI
- prefs:root=互联网链接
- 是的,看到了这一点(还有更多),甚至在测试应用程序中实现了它。确实需要从苹果那里得到一个明确的词,但社区一致的意见是,苹果在5.1中公开“发现/发布”了这个词之后,不允许它,所以包含它的应用程序将不会被接受
08/01/12更新:通过我的开发者帐户询问苹果是否有办法以编程方式启动WiFi设置对话框。以下是答复:
“我们的工程师审查了您的请求,并得出结论:
没有支持的方法来实现给定的所需功能
当前正在装运的系统配置。”
从iOS8开始,您可以通过以下方式打开内置设置应用程序:
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
实际的URL字符串是
@“应用程序设置:
”。我尝试在字符串中添加不同的部分(“蓝牙”、“常规”等),但似乎只链接到主设置屏幕。如果您发现其他问题,请发布回复。如果您将prefs URL方案添加到iOS应用程序中,它将允许您使用iOS 5中可能使用的所有方案。我已经在iOS9上测试过了,但我认为它也可以在旧版本上使用
我想在设置应用程序中打开蓝牙菜单,但上面的路径(prefs:root=General&path=Bluetooth)对我不起作用。 最终对我有用的是
UIApplication.sharedApplication().openURL(NSURL(string:"prefs:root=Bluetooth")!)
确保您首先定义了
prefs
URL方案。在ios9中,它再次工作
要打开设置>常规>键盘,我使用:
prefs:root=General&path=Keyboard
此外,还可以进一步使用键盘:
prefs:root=General&path=Keyboard/KEYBOARDS
我还发现了一些其他的东西:
更新:不知道为什么,现在我不能再跳转到ContentBlocker了,相同的代码,相同的版本,现在不工作了(
#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)
}
我在这里更新一条新闻。 使用“prefs:”不会被苹果拒绝,我测试了它,并检查了AppStore(2016年8月)的批准。thx。更新:
prefs:
自iOS 10起将不起作用。适用于iOS 10上的应用程序通知设置(已测试)
从iOS10开始,您可以使用
UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root")!)
打开常规设置
此外,您还可以向其中添加已知URL(您可以在投票最多的答案中看到它们)以打开特定设置。例如,下面的一个打开touchID和密码
UIApplication.sharedApplication().openURL(NSURL(string:"App-Prefs:root=TOUCHID_PASSCODE")!)
iOS10的解决方案。工作正常
NSURL *URL = [NSURL URLWithString:@"App-prefs:root=TWITTER"];
[[UIApplication sharedApplication] openURL:URL options:@{} completionHandler:nil];
iOS 10
使用应用程序首选项:
App-prefs:root=MOBILE_DATA_SETTINGS_ID
请参见只是一个善意的警告,表示iOS5.1中将删除iOS设置的所有url方案(因此,像prefs:root=General&path=Network这样的url将不再工作),因此,请注意。它们并没有被完全删除
App-prefs:root=MOBILE_DATA_SETTINGS_ID