原理:通过设置跳转到应用B的URL Schemes(自定义的协议头),应用B将其自身“绑定”到一个自定义URL Schemes上,就可以从应用A中利用应用B的URL Schemes启动应用B。
解析:URL Schemes(自身的识别码)
ok,go!!
一/文件的 info.plist 文件配置
appA:
appB:
二/跳转
NSURL *url = [NSURL URLWithString:@"appB://fromAppA"]; // 解析 去appB fromAppA 是为了告诉appB 跳转来源appA if ([[UIApplication sharedApplication] canOpenURL:url]) { [[UIApplication sharedApplication] openURL:url]; }else{ NSLog(@"can't"); }
三/接收跳转
AppDelegate.m 文件中- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ // url.absoluteString 即 二步骤 中设置的URL [[[UIAlertView alloc]initWithTitle:@"来源提示" message:url.absoluteString delegate:nil cancelButtonTitle:@"知道了" otherButtonTitles: nil] show]; return YES;}
四/实现交互
- A->B 实现B 的必要操作。 二是设置URL str 。如 @“appB://1”@“appB://2” 在三步骤的时候 接收跳转的absoluteString 拿到对应的URL Str 从而判断B 应该进行哪一步操作
- A-> B ->A 示例1.A->B (@"appB://fromAppA") 2 B->A ([NSString stringWithFormat:@"%@://fromAppB",sourceStr]sourceStr 为解析到的来源app URL Schemes)
demo: https://github.com/douyingjunxi/iOS-two-application-interaction