最近遇到从微信跳转到自己app升级成为了 Universal Link方式,以及最近发现分享微信时报错“Universal-Link校验不通过”的问题,搜索了很多大佬写的文章,一步步配置下来还是踩了不少的坑,总结一下:
1.首先必须有一个支持HTTPS的域名(可以在公司所用域名生成一个子域名,因为h5跳转app必须跨域),并且拥有该域名下的上传到根目录的权限(用来上传apple-app-site-association文件)。
2.apple-app-site-association文件配置,很多人是从网上直接复制粘贴的会出现格式问题,就是说文件用windows系统打开会是乱码,做好先转换成纯文本,再上传的时候去掉后缀名(因为格式问题很难发现,也是找了好久才发现的)
appID:组成方式是teamId. bundle identifier。可以登陆开发者中心,在Account -> Membership里面可以找到Team ID
paths:设定你的app支持的路径列表,只有这些指定的路径的链接,才能被app所处理。星号的写法代表了可识 别域名下所有链接。
根目录
然后上传到新域名的根目录如上图,index文件是配置一下跳转到appstore的地址,这样打开链接是有app时直接跳入app,没有app的时候可以跳转到appstore里面去下载app。
上传到根目录后在safari浏览器中打开子域名+apple-app-site-association看是否自动下载(eg:https://ios.xixihaha.com/apple-app-site-association)如果下载了这一步就ok了
3.配置证书和xcode,在开发者中心证书配置页找到Identifiers,然后点击项目的BundleID进入详情页,选中Associated Domains
然后在Xcode中添加universal link,以applinks:开头,后面是子域名链接
eg:完整链接https//ios.xixihaha.com
此处applinks:ios.xixihaha.com
xcode配置
然后验证一下是否可以跳转在备忘录里或者safari浏览器写上完整链接,重新安装一下app,看是否可以跳转到app,可以跳转就ok了
----------------------然后分享到微信之Universal-Link校验不通过---------------------
在上面步骤配置好的基础上,在微信开放平台中(https://open.weixin.qq.com/)配置好universal-link
微信开放平台
要跟xcode里面配置的一致。
然后在AppDelegate里注册微信的地方添加universal link
AppDelegate类
从外部通过universal link跳转到app的会到下面方法中去。可以在该方法中处理跳入后的后续事件处理。。。
回调方法
以上,如有疑问可以留言,不对的地方也欢迎建议指正。