iOS openURL 实现 App应用间跳转效果

运用openURL方法 实现 程序间跳转 , 拨打电话 , 发送邮件等功能。


程序间跳转

核心代码

    //需要跳转至App的 Scheme
    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"iMeituan://"]];

    //判断是否可以打开URL
    if ([[UIApplication sharedApplication] canOpenURL:url]) {
        
        //打开URL
        [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) {
            
            if (success) {
                
                NSLog(@"调用成功");
                
            }else{
                
                NSLog(@"调用失败");
            }
        }];
        
    }else{
        
        NSLog(@"打开失败");
    }

URL 统一资源定位符(可以没有路径但是必须要有协议头)
Scheme 协议头,用来决定查找资源的方式
options 参数 具体含义 有待研究。
调用时传的参数 不管是什么 接收方 里面的参数都是
{UIApplicationOpenURLOptionsOpenInPlaceKey = 0;
UIApplicationOpenURLOptionsSourceApplicationKey = @"com.Demo.openURLTest"(Bundle ID)}

知乎上有一篇帖子 , 列举了一些 常用的软件Scheme地址

额外配置

  1. 在“Info.plist”中将要使用的URL Schemes列为 Http访问白名单

LSApplicationQueriesSchemes


iOS openURL 实现 App应用间跳转效果_第1张图片
Http访问白名单
  1. 将Build Settings 下的 Enable Bitcode,把它设置成 NO
iOS openURL 实现 App应用间跳转效果_第2张图片
Enable Bitcode

其他

  1. 拨打电话
//tel: 为拨打电话的 协议头 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://8004664411"]];
  1. 发送邮件
//mailto: 为发送邮件的 协议头
[[UIApplication sharedApplication]openURL:[NSURL   URLWithString:@"mailto://[email protected]"]];
  1. 发短信
//sms: 为发送短信的 协议头
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"sms://10086"]];
  1. 调用浏览器
//正常输入网址就好
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.baidu.com"]];

发送邮件 和 短信 通常并不会使用openURL 的方式来调用。

你可能感兴趣的:(iOS openURL 实现 App应用间跳转效果)