美文网首页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