实现两个 app 的跳转
这里我创建了两个 demo. 名字叫 A 和 B . 现在要想从 A 跳转到 B 实现流程
第一步 我们去到 B app 的项目中做如下操作
操作完了之后 在到 B 项目的appdelegate 的. m 文件中实现以下代理
方法
第一步到这里完成了,此时我们需要到 A 项目中去配置了
如果你的 ios 系统高于9.0 info.plist文件中增加一个LSApplicationQueriesSchemes字段,把它设置为数组类型,并配置需要跳转的协议名单.如下图
设置完成之后 我们就可以进行跳转代码了
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
NSString *appString = @"testB://这个后面可以拼接你需要传递到 B app 的参数";
// 接下来就是我做跳转遇到的一个坑
//就是要对 appString 进行 utf8编码. 不然可能会出现 url 为 nil 的情况! 当然你从传递的参数没有特殊字符和中文也可以不编码
appString = [appString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
NSURL *url = [NSURL URLWithString:appString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0){
// ios10 用这个
[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {
}];
}else{
[[UIApplication sharedApplication]openURL:url];
}
}else{
NSLog(@"没有安装应用");
}
}