标签:
做各大平台分享的时候由于账号混乱,导致分享回调的时候启动了另一个app,这个时候我在猜想这些SDK是怎么唤醒没有启动的其他app的,不难想象,肯定跟AppDelegate处理回调openUrl有关,于是搜了一下才发现,一个应用程序可以唤醒另一个应用程序,只怪我菜,好啦,现在告诉不知道的朋友怎么来实现一个app怎么唤醒另一个app,以及让两个app之间互相通信。。。
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
if ([[url scheme] isEqualToString:@"achao"])
{
NSLog(@"%@",url);
}
return YES;
}
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"achao://hello"]];
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
if ([sourceApplication isEqualToString:@"AC.achao.com"])
{
NSLog(@"%@", sourceApplication); //来源于哪个app(Bundle identifier)
NSLog(@"scheme:%@", [url scheme]); //url scheme
NSLog(@"query: %@", [url query]); //查询串 用“?...”格式访问
return YES;
}
else
return NO;
}
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"achao://hello?name=achao-AC"]];
我们也可以直接在safari离输入"achao://hello?name=achao-AC"来访问我们的app1,这个时候sourceApplication就是@"com.apple.mobilesafari"
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.baidu.com"]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://158********"]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://158********"]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://362****@qq.com"]];
我们用过很多,估计也是程序内部设置了类似的url scheme来供其他应用程序操作的
标签:
原文地址:http://www.cnblogs.com/Sucri/p/5198658.html