美文网首页
iOS开发应用外跳转

iOS开发应用外跳转

作者: 时光作祟不朽间 | 来源:发表于2019-08-29 16:27 被阅读0次

    APP应用外跳转(不同App之间的跳转)

    1.URL Scheme方式,具体见官方文档

    比如在iPhone的Safari浏览器上面输入如下的命令,会自动打开一些App:

    // 打开邮箱
    mailto://
    // 打开短信
    sms://
    // 给110拨打电话
    tel://110
    

    只要在App的info.plist里面添加URL types - URL Schemes,如下图:

    plist写法.png
    就可以在iPhone的Safari浏览器输入demoActive://实现跳转,打开我们的App。
    关于其他一些常见的App,可以从iTunes里面下载到它的ipa文件,解压,显示包内容里面可以找到info.plist文件,打开它,在里面就可以相应的URL Scheme。比如
    手机QQ mqq://
    微信 weixin://
    饿了么 eleme://

    如果被唤醒的App运行流程大致如下图所示:


    应用被唤醒运行流程.png
    我们就可以通过调用application:openURL:sourceApplication:annotation:这个方法,来处理一些操作。
    • 比如通过拿到链接中的参数去处理一些页面跳转
    • 阻止一些App的随意调用,具体代码如下:
    - (BOOL)application:(UIApplication *)application
                openURL:(NSURL *)url
      sourceApplication:(NSString *)sourceApplication
             annotation:(id)annotation
    {
        NSLog(@"sourceApplication: %@", sourceApplication);
        NSLog(@"URL scheme:%@", [url scheme]);
        NSLog(@"URL query: %@", [url query]);
        
        if ([sourceApplication isEqualToString:@"com.*****.*****"]){
            // 允许打开
            return YES;
        }else{
            return NO;
        }
    }
    

    2. Universal Links方式

    虽然在微信内部开网页会禁止所有的Scheme,但是iOS 9.0新增加了一项功能是Universal Links,使用这个功能可以使我们的App通过HTTP链接来启动App。
    1.如果安装过App,不管在微信里面http链接还是在Safari浏览器,还是其他第三方浏览器,都可以打开App。
    2.如果没有安装过App,就会打开网页。
    具体设置需要3步:

    1.App需要开启Associated Domains服务,并设置Domains,注意必须要applinks:开头。
    image.png
    2.域名必须要支持HTTPS。
    3.上传内容是Json格式的文件,文件名为apple-app-site-association到自己域名的根目录下,或者.well-known目录下。iOS自动会去读取这个文件。具体的文件内容请查看官方文档
    1194012-2d1b91f5fcb619cd.png

    App支持了Universal Links方式,那么可以在其他App里面直接跳转到我们自己的App里面。
    在浏览器里面也是一样的效果,如果是支持了Universal Links方式,访问相应的URL,如果安装了应用会提示打开,没有安装会提示下载

    以上就是iOS系统中App间跳转的两种方式。

    相关文章

      网友评论

          本文标题:iOS开发应用外跳转

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