ios app 相互跳转

2017-11-09  本文已影响0人  UILable攻城狮

实现两个 app 的跳转

这里我创建了两个 demo. 名字叫 A 和 B . 现在要想从 A 跳转到 B 实现流程

第一步 我们去到 B app 的项目中做如下操作

图片.png

操作完了之后 在到 B 项目的appdelegate 的. m 文件中实现以下代理

方法


图片.png

第一步到这里完成了,此时我们需要到 A 项目中去配置了

如果你的 ios 系统高于9.0 info.plist文件中增加一个LSApplicationQueriesSchemes字段,把它设置为数组类型,并配置需要跳转的协议名单.如下图

图片.png

设置完成之后 我们就可以进行跳转代码了

- (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(@"没有安装应用");
    } 
}

这里你会发现你已经成功进行 app 跳转了

上一篇下一篇

猜你喜欢

热点阅读