华山论剑之 App 打开设置页面和其他应用程序
前言
这两天开始做新的项目了,在项目出现了打开系统的设置中的WiFi页面和其他应用的这两个需求.然后度娘了一下,整理整理发出来.方便以后的工作使用.
App打开设置页面
在iOS5.1之前,我们如果需要打开系统设置页面的某个页面,如打开WiFi设置页面,我们只需要使用如下代码即可.
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=WIFI"]];
但是在iOS5.1之后,如果直接这么调用的话是无效果的,那么我们该怎么办呢?这时候我们只需要修改一下程序中的 info.plist文件 即可.步骤如下.
在 info.plist文件 中添加一个数组类型的 URL types 字段.
在 URL types 数组中创建一个新的 item 在该 item 中有 URL Schemes 和 Document Role 两个字段,其实 Document Role 的值设置为 Editor , URL Schemes 是一个数组类型,给它添加一个 item ,值设置为 prefs .
整体设置图片如下所示.
这样,我们就可以在程序中直接跳转到系统的设置页面了.(由于模拟器没有WiFi所以只能跳转到设置界面了.)
下面是我整理的一些设置跳转的URL字符串,请自行使用.不过多解释了.
通用->关于本机
prefs:root=General&path=About
通用->辅助功能
prefs:root=General&path=About
飞行模式开关
prefs:root=AIRPLANE_MODE
自动锁屏
prefs:root=General&path=AUTOLOCK
亮度
prefs:root=Brightness
蓝牙
prefs:root=General&path=Bluetooth
日期与时间
prefs:root=General&path=DATE_AND_TIME
FaceTime
prefs:root=FACETIME
通用
prefs:root=General
键盘
prefs:root=General&path=Keyboard
iCloud
prefs:root=CASTLE
iCloud->存储空间
prefs:root=CASTLE&path=STORAGE_AND_BACKUP
通用->地区与语言
prefs:root=General&path=INTERNATIONAL
音乐
prefs:root=MUSIC
通知
prefs:root=NOTIFICATIONS_ID
照片
prefs:root=Photos
电话
prefs:root=Phone
通用->还原
prefs:root=General&path=Reset
Safari浏览器
prefs:root=Safari
通用->Siri
prefs:root=General&path=Assistant
Sounds
prefs:root=Sounds
开发者
prefs:root=LOCATION_SERVICES
苹果商店
prefs:root=STORE
通用->设备管理
prefs:root=General&path=USAGE
VPN
prefs:root=General&path=Network/VPN
墙纸
prefs:root=Wallpaper
WiFi
prefs:root=WIFI
通过App打开另外一个应用程序
上面我们看到了通过一个App打开系统设置界面的相关操作,那么如果通过当前App打开另外的一个应用程序呢?我们就那上面的那个程序当测试程序,让另外的一个程序打开它.这时候我们需要接着配置 info.plist 中 URL types ,我们新增一个 item ,然后 URL Schemes 选项如图填写 testApp (类似于标识符).
当我们然后我们需要在这个被调起程序的AppDelegate.m文件中重写 -(BOOL)application:(UIApplication )application handleOpenURL:(NSURL )url 这个方法.整体代码如下所示.
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{ if([[url scheme] isEqualToString:@"textApp"]){ [application setApplicationIconBadgeNumber:10]; return YES; } return NO;}
然后我们在另外的一个程序中合适的地方写如下的代码,调起我们的测试程序. 注意 :标识符URL的字符串要写成@"testApp:",而不是@"testApp"!带有冒号.
- (IBAction)openOtherApp:(id)sender { NSURL *url = [NSURL URLWithString:@"testApp:"]; [[UIApplication sharedApplication] openURL:url];}
这样,我们就完成了我们的跳转了.效果如下所示.
结束
关于程序之间的通讯就说到这了,如果再有什么问题,可以联系我,骚栋24小时在线,谢谢.最后附上两者的演示Demo传送门.
-->程序间通讯的传送门:door:
文/神经骚栋
关键字:APP, 产品经理
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!