利用openURL,在IOS应用中打开另外一个应用
2016-01-25 16:56
453 查看
在IOS中,实现一个应用启动另外一个应用,使用UIApplication的openURL:方法就可实现,这里以test跳到test02为例。(需要先创建这两个工程)
1. 右键,选择“Add Row”
2. Key值选择“URL types”
3. 打开“Item 0″,然后为该key增加一个URL identifier。可以是任何值,但建议用“反域名”(例如 “com.fcplayer.test”)。
4. 在“Item 0”下再加一行。
5. 选择“URL Schemes” 作为Key。
6. 输入你的URL协议名 (例如“test://” 应写做“test”)。如果有必要,你可以在这里加入多个协议。
操作截图如下:
test://
test://com.company.test
test://config=1&abar=2
这时我们在被启动应用中就必须进行自定义处理,在delegate中实现该消息(Cocos2d加在AppDelegate中),例如:
- (BOOL)application:(UIApplication *)applicationhandleOpenURL:(NSURL*)url { // Do something withthe url here }
通常,我们会从参数中解析出URL以便在视图中显示或者存储到UserPreference。下面的例子把URL存储为User Preference的url变量中或者打印出来:
注册自定义URL协议(在test中)
首先被启动的应用需要向iPhone注册一个自定义URL协议。这是在info.plist文件进行的。1. 右键,选择“Add Row”
2. Key值选择“URL types”
3. 打开“Item 0″,然后为该key增加一个URL identifier。可以是任何值,但建议用“反域名”(例如 “com.fcplayer.test”)。
4. 在“Item 0”下再加一行。
5. 选择“URL Schemes” 作为Key。
6. 输入你的URL协议名 (例如“test://” 应写做“test”)。如果有必要,你可以在这里加入多个协议。
操作截图如下:
访问自定义URL(在test02中)
在主应用程序中通过访问自定义URL启动另外一个应用:(test已经安装,这段代码要写在另一个应用里面,比如test02)//放在需要的地方,调用即可 NSURL * urlStr = [NSURL URLWithString:@"test://x=100"];//后面为参数 if ([[UIApplication sharedApplication] canOpenURL:urlStr]) { NSLog(@"can go to test"); [[UIApplication sharedApplication] openURL:urlStr]; }else{ NSLog(@"can not go to test!!!!!"); }
自定义处理URL(在test中)
有些时候我们除了启动还需向另外一个应用发送参数,这是也可以通过自定义的URL来实现,如:test://
test://com.company.test
test://config=1&abar=2
这时我们在被启动应用中就必须进行自定义处理,在delegate中实现该消息(Cocos2d加在AppDelegate中),例如:
- (BOOL)application:(UIApplication *)applicationhandleOpenURL:(NSURL*)url { // Do something withthe url here }
通常,我们会从参数中解析出URL以便在视图中显示或者存储到UserPreference。下面的例子把URL存储为User Preference的url变量中或者打印出来:
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { if (!url) { return NO; } NSString *URLString = [url absoluteString]; NSLog(@"%@",URLString); //[[NSUserDefaults standardUserDefaults] setObject:URLString forKey:@"url"]; //[[NSUserDefaults standardUserDefaults] synchronize]; return YES; }
相关文章推荐
- ios-Ineligible Devices 不被识别的设备
- iOS的动态内存检测
- Runtime Method Swizzling
- iOS添加指纹识别
- ios tableView那些事 (九) tableview的删除
- iOS之横竖屏小结
- iOS-小的知识点
- IOS 开发,调用打电话,发短信,打开网址
- iOS导航栏的translucent属性
- IOS-48-解决开发中自定义控件在不同型号手机上不能显示的问题 (区别在于iOS修改了weak、strong属性)
- iOS 使用View 为屏幕增加一个全屏的蒙层
- ios 设置屏幕方向的两种方法
- iOS更新学习
- iOS 自定义TabBarController
- ios使用3dD Touch Screen Short Cut
- 在iOS开发中使用FMDB
- iOS ViewController里代码结构的规定
- iOS:Xcode7下创建 .a静态库 和 .framework静态库
- 【同行说技术】iOS从小白到大神必读资料汇总(四)
- iOS--利用比例纯代码适配屏幕大小