美文网首页iOS技术
iOS 通用链接 UniversalLink

iOS 通用链接 UniversalLink

作者: _好久不见_ | 来源:发表于2022-03-17 16:40 被阅读0次

    UniversalLink 是苹果自iOS9.0推出的用于应用之间跳转的一种安全认证机制,通过HTTPS链接来启动APP。若手机中安装了支持该链接的APP,点击该链接就会直接进入到APP中。要实现这个机制需要进行相关的配置,具体可看苹果官方文档

    一、配置过程

    1.域名:支持https的域名。举例: https://example.com
    2.AppID中开启Associated Domains。Supporting Associated Domains
    登录App Developer,在对应的App ID下,在Capabilities列表里勾选Associated Domains,状态变为Enabled。同时记录App ID Prefix (Team ID) 和 BundleID。

    AppID中开启Associated Domains.png

    3.配置apple-app-site-association。
    创建一个文件名必须为apple-app-site-association的文件,注意没有后缀名,json格式内容如下:

    {
        "applinks": {
            "apps": [],
            "details": [ //如果有多个App需要支持Universal,details数组中可配置多个App的信息
                {
                    "appID": "TeamID.BundleID", //自行替换TeamID和BundleID
                    "paths": [ "*" ] //path 过滤需要处理的地址,不需要过滤处理则配置通配符*
                }
            ]
        }
    }
    
    • appID:组成方式是 TeamID.BundleID,将第二步记录下的TeamID和BundleID进行替换。
    • paths:设定App支持的路径,只有这些设定的路径的链接,才能被App所处理。通配符*代表支持域名下所有链接。

    保存内容后将文件放在域名根目录或.well-known下。
    在浏览器中输入这个文件链接后(举例: https://example.com/apple-app-site-association),应该可直接下载apple-app-site-association文件。

    4.Xcode中配置Associated Domains。
    在项目工程中配置Associated Domains,若之前没有添加过Associated Domains,点击+Capability 添加Associated Domains,然后在Domains中填入该App想要支持的域名,必须以applinks:为前缀,用applinks:替换https://。
    举例,若支持通用链接的域名是 https://example.com,则Domains中填入的是applinks:example.com

    Xcode中配置Associated Domains.png

    5.验证
    可前往苹果验证apple-app-site-association文件是否合法有效。
    在备忘录中输入并点击UniversalLink 链接,可跳转至App;或在Safari浏览器中打开 Universal Link 链接,下拉会出现App打开按钮,点击打开可以跳转至App,这样 Universal Link 就配置成功了。

    6.处理
    在 AppDelegate 里实现方法

    - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
    {
        if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb])
        {
            NSURL *url = userActivity.webpageURL;
            //这里根据不同的URL来进行处理,拉起App后可跳转到不同页面
        }
        return YES;
    }
    

    相关文章

      网友评论

        本文标题:iOS 通用链接 UniversalLink

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