iOS 通用链接的配置(Universal Links)

一、打开Associated Domains

1.首先登录 苹果开发者网站
2.Certificates, Identifiers & Profiles 下的Identifiers 找到要配追的Identifiers 点进去
3.打开Associated Domains然后保存
iOS 通用链接的配置(Universal Links)_第1张图片

二、更新Profile文件

如果我们使用自动的,可以忽略这一步,手动的创建的证书,选择对应的配置文件,点击Edit进入修改页,直接点击Save,保存后点击Download下载并打开

三、在项目中添加 Associated Domains

打开项目Target -> signing & Capability -> + Capability -> Associated Domains
iOS 通用链接的配置(Universal Links)_第2张图片iOS 通用链接的配置(Universal Links)_第3张图片

四、填写域名

将https://替换为applinks:
iOS 通用链接的配置(Universal Links)_第4张图片

五、创建apple-app-site-association文件

创建一个纯文本,文件名字为apple-app-site-association的文件,不能有后缀

1)打开文本编辑

iOS 通用链接的配置(Universal Links)_第5张图片

2)文本编辑->设置->打开和存储->☑️给纯文本添加".txt"扩展名iOS 通用链接的配置(Universal Links)_第6张图片
3)格式->制作纯文本

iOS 通用链接的配置(Universal Links)_第7张图片

4)编辑文件内容

使用webcredentials,应用可以访问为网站存储的证书,无需用户重新输入用户名和密码。用户还可以在应用内创建新帐户,更新密码或删除帐户,Safari会保存并使用这些修改。

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "5S9DLJKU59.com.chain.chat",
                "paths": ["/*", "/chatRoom/*", "/chatGroup/*"]
            },
            {
                "appID": "5S9DLJKU59.com.chain.chat.dev",
                "paths": ["/*", "/chatRoom/*", "/chatGroup/*"]
            },
            {
                "appID": "5S9DLJKU59.com.chain.chat.test",
                "paths": ["/*", "/chatRoom/*", "/chatGroup/*"]
            }
        ]
    },
    "webcredentials": {
        "apps": [
            "5S9DLJKU59.com.chain.chat"
        ]
    }
}
5)保存文件

iOS 通用链接的配置(Universal Links)_第8张图片

其中 5S9DLJKU59Team ID,可以在开发者账户中查找
iOS 通用链接的配置(Universal Links)_第9张图片
iOS 通用链接的配置(Universal Links)_第10张图片

六、上传文件到服务器

文件可以直接放在服务器的根目录或者.well-known目录下(在这两个目录下让nginx 处理 return json string也可以)

https://www.chat.io/apple-app-site-association
https://www.chat.io/.well-known/apple-app-site-association

可以通过浏览器访问这两个路径,看看有没有下载文件或者返回json

七、验证Universal Link链接是否配置正确

打开safair浏览器
输入https://www.chat.io/chatRoom/59 ,出现在App中打开,就说明我们配置成功了
iOS 通用链接的配置(Universal Links)_第11张图片

八、在App代理中接收

extension AppDelegate {

    func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
        guard userActivity.activityType == NSUserActivityTypeBrowsingWeb, let url = userActivity.webpageURL else {
            return false
        }

        return handleURL(url)
    }

    
    @discardableResult
    private func handleURL(_ url: URL) -> Bool {
        
        return false
    }
}

苹果官方Universal Links配置

你可能感兴趣的:(Swift,Objective-C,ios)