iOS 跳转到第三方应用或者设置页面
程序员文章站
2022-04-25 18:35:11
ios 跳转到第三方应用或者设置页面。最近在写一个widget的小项目。功能是在通知栏上快速设置一些设置,比如wifi,蓝牙,低电量模式。不过就遇到了下面咱们要讨论的问题。如何跳转?那么网上有很多资...
ios 跳转到第三方应用或者设置页面。最近在写一个widget的小项目。功能是在通知栏上快速设置一些设置,比如wifi,蓝牙,低电量模式。不过就遇到了下面咱们要讨论的问题。如何跳转?那么网上有很多资料。不过90%都是一样的,另外10%又是一模一样的。想找个东西太难。所以我要在这里面整理一下,这就是我写这篇文章的意义。
跳转方式一览
目标 | url |
---|---|
电池电量 | prefs:root=battery_usage |
vpn | prefs:root=general&path=vpn (网上有很多写的是prefs:root=general&path=network/vpn,就用我写的那个,亲测可用) |
个人热点 | prefs:root=internet_tethering |
飞行模式 | prefs:root=airplane_mode |
锁定 | prefs:root=general&path=autolock |
亮度 | prefs:root=brightness |
时间设置 | prefs:root=general&path=date_and_time |
icloud | prefs:root=castle |
icloud备份 | prefs:root=castle&path=storage_and_backup |
通用设置 | prefs:root=general |
存储空间 | prefs:root=general&path=storage_icloud_usage/device_storage |
蜂窝数据 | prefs:root=mobile_data_settings_id |
wi-fi 设置 | prefs:root=wifi |
蓝牙设置 | prefs:root=bluetooth |
定位设置 | prefs:root=privacy&path=location |
辅助功能 | prefs:root=general&path=accessibility |
关于手机 | prefs:root=general&path=about |
键盘设置 | prefs:root=general&path=keyboard |
显示设置 | prefs:root=display |
语言设置 | prefs:root=general&path=international |
声音设置 | prefs:root=sounds |
app store 设置 | prefs:root=store |
墙纸设置 | prefs:root=wallpaper |
music | prefs:root=music |
nike + ipod | prefs:root=nike_plus_ipod |
notes | prefs:root=notes |
safari | prefs:root=safari |
siri | prefs:root=general&path=assistant |
系统更新 | prefs:root=general&path=software_update_link |
打开电话 | mobilephone:// |
世界时钟 | clock-worldclock:// |
闹钟 | clock-alarm:// |
秒表 | clock-stopwatch:// |
倒计时 | clock-timer:// |
打开相册 | photos:// |
facetime | prefs:root=facetime |
使用方式
在程序中,ios 9 8 7 可以用以下方式来打开设置。
nsurl *url = [nsurl urlwithstring:@"prefs:root=wifi"]; if ([[uiapplication sharedapplication] canopenurl:url]) { [[uiapplication sharedapplication] openurl:url]; // ios 9 的跳转 }
当然也可以这样(ios10 9 8 7 可以用这种方式)(这方法虽然ios 10也可以用但是并不能去到蓝牙、wifi、电池,只能去到自身应用的系统设置。)
nsurl *url = [nsurl urlwithstring:uiapplicationopensettingsurlstring]; if ([[uiapplication sharedapplication] canopenurl:url]) { [[uiapplication sharedapplication] openurl:url]; }
下面的方法是ios10 新增的api
nsurl *url = [nsurl urlwithstring:@"prefs:root=wifi"]; if ([[uiapplication sharedapplication] canopenurl:url]) { [[uiapplication sharedapplication] openurl:url options:@{} completionhandler:nil]; }
如果你是通知栏应用(如pin,launcher)在ios 10通知栏widget可以像ios 9正常跳转,pin、launcher,都可以通过简单地设置 url scheme 实现此功能,你可以继续在通知中心直接跳转至系统设置的特定页面,比如蜂窝数据、wifi、定位等等。只需将原来的 prefs 开头改成 prefs 即可。
需要注意的是,这个功能只在通知中心的 today widget(即插件)有效,在应用中则无法直接跳转设置。
(如果你的是通知栏类应用可以用此办法解决,ios 10 可用)
nsurl*url=[nsurl urlwithstring:@"prefs:root=wifi"]; [self.extensioncontext openurl:url completionhandler:^(bool success) { }];
上一篇: Facebook发布人工智能产品:能以人类智商识别聊天内容
下一篇: CNNIC发布第43次报告