1.背景
苹果在iOS9添加了通用连接(Universal Links),当您支持通用链接时,iOS用户可以点击指向您网站的链接,并无缝链接到已安装的应用程序,而无需通过Safari。如果未安装您的应用,请点击指向您网站的链接以在Safari中打开您的网站。详见苹果官方文档(Universal Links)
2.集成 Universal Links
本人是在项目中使用shareSDK进行微信分享时,收到微信SDK升级的邮件后进行集成的,其他大体也类似,下面分享一下踩坑过程。
2.1 环境
我用的环境:Xcode 11.3 ,mob_sharesdk 4.3.6,阿里云服务器,免费证书, Https
其他必备环境
1. 有一个注册的域名
2. 必须支持https,并且拥有有效的Certificate Authorit证书(不太懂的可以跟后端开发确认,我们用的是阿里
云的服务器,Certificate AuthoritF也是阿里云免费申请的那种)
3.APP支持iOS9以上
2.2 打开Associated Domains
我们项目使用的是自动配置证书
添加完成后如下图所示:
Domain 添加你的域名
格式为: applinks:yourrdomain 例如:applinks:www.baidu.com
添加完成后你项目的.entitlements文件会多出一项(如下图),内容与上面所填写的一致,没有该文件的会生成该文件。 image
同时也可以登录自己的开发者账号,查看该项目下的Associated Domains是否是打开状态来验证上面的添加是否正常
image2.3创建apple-app-site-association文件
注:paths如果没有具体要求可以写成["/*", "*"],微信那边需要在/后拼接东西,不这样写微信那边校验不通过,不能只写一个"*"
1.名称必须为apple-app-site-association
2.内容是json
3.文件不能有扩展名
4.官方示例内容
{
"applinks": {
"apps": [],
"details": [
{
"appID": "ABCDE12345.com.example.app",
"paths": [ "/buy/*", "NOT /help/website/*", "/help/*" ]
}
{
"appID": "ABCDE12345.com.example.app2",
"paths": [ "/buy/*", "NOT /help/website/*", "/help/*" ]
}
]
},
"webcredentials": {
"apps": [ "ABCDE12345.com.example.app" ]
}
}
image
2.4 上传apple-app-site-association文件至自己的https服务器(上面域名对应的服务器)
1.文件路径
可以放在.well-known目录下,或者域名根目录(貌似会先查找.well-known目录下的这个文件,没有的话再去根目录下找,所以建议最好放在.well-known目录下)
2.示例路径:
youdomain/.well-known/apple-app-site-association
youdomain/apple-app-site-association
3.注意事项!
确保上述路径能直接在浏览器访问时下载的你的apple-app-site-association文件,可以下载后校验有没有上传错误(由于文件过小可能存在缓存,清除缓存后重新下载验证
2.5 连接校验
1. 访问网站(备忘录校验)
还有个重要的问题,你的域名下要放个网页,hello world就行,也可以自己定制网页,你们APP的介绍下载等,确保在备忘录里长按域名连接可弹出用你的APP打开这个连接。如下图;
2.连接校验
苹果提供的[校验地址](https://search.developer.apple.com/appsearch-validation-tool)
如果应用没上线,可能会校验不通过,上线后也有可能校验不通过(具体原因不清楚,网上有很多博客提供了校验通过的图,可以自行去查一查)
备忘录图:
image
连接校验图:
image
3 微信Universal Links适配
前往微信开放平台在你的应用下填写Universal Links地址
image其余按照SDK的适配文档进行适配就行,上面wx处填写的地址需要在调用SDK的时候传入,记得别写错了就行。
网友评论