iOS Universal Links(通用链接)
最近项目中,微信SDK针对 iOS 13系统版本安全性,进行了对应升级,微信SDK版本为openSDK(1.8.6)。在微信官方介绍中,1.8.6版本支持Universal Links方式跳转,对openSDK分享进行合法性校验。
本篇文章中,相关配置:
- 项目 BundleID:com.test123.www
- Universal Links :https://www.test123.com/
- teamID:teamID
1、微信开放平台配置Universal Links
比如说,我配置的Links是 https://www.test123.com/
- 苹果对Universal Links的要求:https://developer.apple.com/documentation/uikit/inter-process_communication/allowing_apps_and_websites_to_link_to_your_content
- 微信对Universal Links配置要求
a)Universal Links必须支持https
b)Universal Links配置的paths不能带query参数
c)微信使用Universal Links拉起第三方App时,会在Universal Links末尾拼接路径和参数,因此App配置的paths必须加上通配符**/***
确认App的Universal Links配置成功
微信使用第三方App的Universal Links唤起第三方App时,会在Universal Links末尾拼接路径和参数,因此开发者Universal Links配置必须加上通配符,并测试Universal Links拼接字符串能否唤起app
{ "appID": "teamID.com.test123.www", "paths": ["/testFolder/*","*"] }
teamID:在苹果开发者网站获取
BundleID:com.test123.www
2、生成 apple-app-site-association 文件
创建一个名字叫做apple-app-site-association,包含固定格式的json文件,该文件没有后缀名
比如:
{
"applinks":{
"apps":[
],
"details":[
{
"paths":["/testFolder/*","*"],
"appID":"TeamID.com.test123.www"
}
]
}
}
appID格式为:TeamID + . + BundleID
注意:
1、文件没有后缀名,不加`.json`后缀,MINI TYPE一定是application/json
2、`paths`是数组,下标越小匹配优先级越高
3、` appID`格式为 {teamId}.{bundleId}
4、上传到 web server 根目录下,也可以放到.well-known
5、web server 需要支持 https, 不支持任何重定向
- 第一次启动APP的时候,它会从上面的域名请求JSON 文件 apple-app-site-association。当你第一次启动 APP,它会从 http