华山论剑之 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, 产品经理

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部