universal link教程
2019-07-19 本文已影响0人
wsxiaoluob
universal link 开启流程
一、apple-app-site-association文件准备
新建名为apple-app-site-association的文件,无后缀名,内容如下:
"applinks": {
"apps": [],
"details": [
{
"appID": "KFCNEC27G3.so.dian.powerblue",
"paths": ["*"]
}
]
}
}
apps填空数组,details为数组,里面每一项对应的是不同的包名,appID的内容分为两部分:
{TeamID}.{BundleID}
其中TeamID在developer.apple.com里面的证书页面可以查看
BundleID在同页面也可查看,或者在Xcode中查看
imagepaths对应的是路径匹配,全路径匹配的话填*
二、域名准备
准备一个线上可访问的并且支持https的域名,将apple-app-site-association文件挂在此域名的根目录下,或者.well-known目录下,即访问https://{domain}/apple-app-site-association或者https://{domain}/.well-known/apple-app-site-association即可访问到此文件。
三、项目准备
打开Xcode,在Target的Capability选项卡中,开启Associated Domains,并且在Associated Domains中新建一项,内容填入”applinks:{domain}“,如图所示:
image四、测试
至此所有配置均已完成,可以进行测试了。如果有抓包条件,可以抓包查看App在启动时,会自动去https://domain/apple-app-site-association和https://domain/.well-known/apple-app-site-association去请求apple-app-site-association文件。
第一次启动后,即可在备忘录里面进行测试,打开备忘录,输入https://{domain}/{paths},其中paths就是在association文件中配置的paths,如果配置的是*,则直接输入https://{domain}即可,输入后,长按此URL,若出现”在XXX中打开“,若下图所示,即universal link配置成功
image下一步:微信中测试。
由于存在跨域问题,点击访问https://{domain}/paths的页面必须不能是domain域名,我这里使用的是本地起的server,使用ip访问一个静态html,script中执行跳转代码:
location.href = "https://{domain}/paths"