最近在写一个widget的小项目。功能是在通知栏上快速设置一些系统设置,比如wifi,蓝牙,低电量模式。不过就遇到了下面咱们要讨论的问题。如何跳转?那么网上有很多资料。不过90%都是一样的,另外10%又是一模一样的。想找个东西太难。所以我要在这里面整理一下,这就是我写这篇文章的意义。
跳转方式一览
| 目标 | URL |
|---|---|
| 电池电量 | Prefs:root=BATTERY_USAGE |
| 个人热点 | 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 可以用以下方式来打开设置。
当然也可以这样(iOS10 9 8 7 可以用这种方式)(这方法虽然iOS 10也可以用但是并不能去到蓝牙、WIFI、电池,只能去到自身应用的系统设置。)
下面的方法是iOS10 新增的api
如果你是通知栏应用(如pin,Launcher)在iOS 10通知栏Widget可以像iOS 9正常跳转,Pin、Launcher,都可以通过简单地设置 URL Scheme 实现此功能,你可以继续在通知中心直接跳转至系统设置的特定页面,比如蜂窝数据、WiFi、定位等等。只需将原来的 prefs 开头改成 Prefs 即可。
需要注意的是,这个功能只在通知中心的 Today Widget(即插件)有效,在应用中则无法直接跳转设置。
(如果你的是通知栏类应用可以用此办法解决,iOS 10 可用)