美文网首页编程学习iOS DeveloperiOS学习开发
iOS openURL 实现 App应用间跳转效果

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

作者: KumLight | 来源:发表于2017-01-09 15:23 被阅读168次

运用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


Http访问白名单
  1. 将Build Settings 下的 Enable Bitcode,把它设置成 NO
Enable Bitcode

其他

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

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

相关文章

网友评论

  • 菜鸟秦伟康:想问下如果是打电话这个电话怎么弄成一个变量?老师
    菜鸟秦伟康:@Light均 非常感谢您的解答,三克油!
    菜鸟秦伟康:非常感谢。
    KumLight:字符串拼接就可以了。
    NSString *phone = @"8004664411";
    NSString *tel = [NSString stringWithFormat:@"tel://%@",phone];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:tel]];

本文标题:iOS openURL 实现 App应用间跳转效果

本文链接:https://www.haomeiwen.com/subject/lmeamttx.html