我们来讨论一下,在iOS开发中,如何实现从app1打开app2。
基本的思路就是,可以为app2定义一个URL,在app1中通过打开这个URL来打开app2,在此过程中,可以传送一些参数。下面来讨论一下具体的实现过程。
1. 在app2的info.plist中定义URL,就是在文件中添加URL types一项。可按下图进行添加。
2. 在app1的代码中打开刚才定义的URL,代码如下:
- NSURL *url = [NSURL URLWithString:@"myapp://test?para1=1?2=2"];
-
if ([ourApplication canOpenURL:ourURL]) {//检测已经安装
- [[UIApplication sharedApplication] openURL:url];
- }
当然,这个URL的形式可以是其他形式的,只要以"myapp://"开始即可。
这样,就可以在app1中打开app2.
打开之后,会调用app2的AppDelegate的
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { if ([[url host] isEqualToString:@"com.taobao.dgb"]) { NSLog(@"------%@----%@",[url host],[url query]); NSString *viewId = [[url query] substringFromIndex:[[url query] rangeOfString:@"viewId="].location + 7]; if ([viewId isEqualToString:@"letters"]){ } } return YES; }
由于URL是自己定义的,所以会存在URL重复的情况。经过测试发现,如果试图打开这个URL,那么会打开先安装的那个应用。