美文网首页iOS开发
Universal Links设置详细步骤

Universal Links设置详细步骤

作者: 苍眸之宝宝 | 来源:发表于2020-03-23 09:35 被阅读0次

    1.登录苹果开发者账号添加和配置证书:

    1.1没有证书的添加证书:

    关于添加Certificates, Identifiers & Profiles网上很多教程,这里就不再赘述了。

    1.2开启App项目的Associated Domains功能:

    苹果开发者->Account->Overview->Certificates, Identifiers & Profiles->Identifiers->选中对应的App项目的Bundle Identifier的Identifiers->开启Associated Domains功能->新建该Identifiers最新的Profiles文件->下载该Profiles文件并在Mac上安装这个文件(双击文件安装) image.png

    2.Xcode中添加Associated Domains:

    我的Xcode版本是11.3.1版本;如果没有Associated Domains需要添加该选项:


    678543.png

    Associated Domains可以设置多个,格式是:applinks: + 服务器域名;Associated Domains必须已applinks:开头。


    image.png

    3.新建和配置后台服务器文件:

    3.1新建文件:

    文件名必须为apple-app-site-association的json格式文件,注意文件命不需要添加的后缀。

    {
        "applinks": {
            "apps": [],
            "details": [
            {
                "appID": "TeamID+Bundle Id",
                "paths": ["*"]
            },
            {
                "appID": "TeamID+Bundle Id",
                "paths": ["/videos"]
                },
            {
                "appID": "TeamID+Bundle Id",
                "paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]
            },
            {
                "appID": "TeamID+Bundle Id",
                "paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]
            }
        ]
        }
    }
    

    3.2文件说明:

    apps必须设置为[];
    details值为一个json字典,每个应用程序一个字典。对于每个特定于应用程序的词典(上面就表示了同一个teamId下的4个不同的应用);字典中包含两个键值对:appID和paths;
    appID将处理格式为的链接的应用程序的标识;命名规则:TeamID+Bundle Id;例如:V238977XUM.com.Demo.www
    paths应用程序支持的网站各个部分,以路径字符串数组形式指定。只有这些指定的路径的链接,才能被app所处理, *符号写法代表了可识别域名下所有链接。

    4.上传服务器:

    上传 apple-app-site-association文件到域名的根目录或者.well-known子目录下;在浏览器中能打开https://域名 或 https://域名/apple-app-site-association 或 https://域名/.well-known/apple-app-site-association。

    5.测试链接:

    上传成功后可用苹果测试链接页,进行测试该设置是否生效。链接见文档最后一项。


    image.png

    6.App工程处理代码:

    func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
            switch userActivity.activityType {
            case NSUserActivityTypeBrowsingWeb: do {
                let webpageURL = userActivity.webpageURL
                let host = webpageURL?.host
                if host == "apple..com" { // Universal Links跳转
                    let urlCom = URLComponents.init(string: webpageURL?.absoluteString ?? "")
                    let dic = urlCom?.queryItems
                    for item in queryItems ?? [] {
                        var params = [String : Any].init()
                        params[item.name] = item.value
                    }
                }
                else {
                    UIApplication.shared.open(webpageURL!, options: [:], completionHandler: nil)
                }
            }
            default:
                break
            }
            return true
        }
    

    7.官方文档:

    官方链接
    测试链接

    相关文章

      网友评论

        本文标题:Universal Links设置详细步骤

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