首页 > 代码库 > App应用间通信
App应用间通信
如要实现项目A里点击一个Button,跳到项目B:
1. 项目B里info.plist设置:
2. 在项目B的Appdelegate里实现方法:
/** * BProject AppDelegate */- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:url.scheme message:url.description delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:url.query, url.host, nil]; [alertView show]; return YES;}
3. 项目A里Button的点击事件:
- (IBAction)jumpToAnotherApp:(id)sender { NSString *urlString = @"BProject://www.CompanyName.BProject?SendSomeDataToBProject"; NSURL *URL = [NSURL URLWithString:urlString]; [[UIApplication sharedApplication] openURL:URL]; }
4. 模拟器或真机上运行项目B,再运行项目A,点击Button,效果:
例如跳到淘宝应用:
NSString *urlString = @"taobao://";
查找想要通信的应用的URL Schemes:
用itools下载该应用的info.plist,比如想跳到当当网app,
打开当当网app的info.plist是:
在点击事件里实现
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"dangdang://"]];
或者
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"dd://"]];
都可以跳转到当当网app。
若手机没安装要跳转的app, 比如想跳转到人人网App,但手机没安装这个软件,可以:
1). 从苹果网站 https://linkmaker.itunes.apple.com/us/?urlDesc= 先查找出人人网的AppStore链接,
https://itunes.apple.com/cn/app/ren-ren/id316709252?mt=8&uo=4
2). 点击事件中加入判断代码:
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"renrenios://"]]) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"renrenios://"]];
} else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://itunes.apple.com/cn/app/ren-ren/id316709252?mt=8&uo=4"]];
}
这样,大概可以完成应用之间的通信。
App应用间通信