现在微信、qq等各大平台都开始强制要求配置通用链接
配置通用链接主要的文档:(苹果官方文档)https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html
qq互联平台配置:https://wiki.connect.qq.com/%E5%A1%AB%E5%86%99%E5%8F%8A%E6%A0%A1%E9%AA%8Cuniversallinks
开始准备工作:
首页打开项目配置
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TVU10MjRVTzkEVNdXVzwEMW1mY1RzRapnTtxkb5ckYplTeMZTTINGMShUYfRHelRHLwEzX39GZhh2css2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3Pn5GcuYDN3ETMxcTMzITNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
如果用户勾选了automatically会自动更新证书,不然的话没有配置的话会提示错误,这个时候就需要到苹果开发者证书后台配置
勾选以后,保存,在更新一下你的证书!(完成以后记得保存Prefix+bundleId,后面写文件的要用到)
完成上述步骤以后,开始配置通用链接:
- 创建一个
包含有关您的应用程序可以处理的URL的JSON数据的文件。apple-app-site-association
- 将
文件上传到您的HTTPS Web服务器。您可以将文件放置在服务器的根目录或apple-app-site-association
子目录中。.well-known
- 准备您的应用程序以处理通用链接
1、创建json格式的一个空文件(取名必须为apple-app-site-association,并且没有后缀,隐藏后缀)
{ "applinks": {
"apps": [],
"details": [ {
"appID": "9JA89QQLNQ.com.apple.wwdc",
"paths": [ "/wwdc/news/", "/videos/wwdc/2015*", "/qq_conn/222222/*" ]
}, {
"appID":"ABCD1234.com.apple.wwdc",
"paths": [ "*", "/qq_conn/222222/*" ]
} ] }
}
- 这里的appID是指:TeamID+BundleId的组成(例:9JA89QQLNQ.com.apple.test)(TeamID可以在开发者账号里面查看,BundleId是项目的Bundle Identifier)。
- 这里的paths是指:是设置允许的路径列表,可以是一个也可以是多个,最简单的方式是使用“*”,通配符,表示允许该域名下的任意路径。(注意:paths中的大小写是敏感的,一定要一一对应)
2、开始上传到服务器(放在根目录下),且服务器必须配置了HTTPS,上传成功后通过输入域名+文件名检查是否能上传成功,并且能够访问:例如上传到了https:www.xxxx.com,那么上传成功之后打开浏览器访问https:www.xxxx.com/
apple-app-site-association
3、成功以后配置项目中的通用链接:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TVU10MjRVTzkEVNdXVzwEMW1mY1RzRapnTtxkb5ckYplTeMZTTINGMShUYfRHelRHLwEzX39GZhh2css2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3Pn5GcuYDN3ETMxcTMzITNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
注意事项
Associated Domains 配置必须以applinks: 开头
例如:上传的服务器为https:www.xxxx.com,那这里就填写applinks:www.xxxx.com
开始验证
在iOS设备中的备忘录中输入App能识别的链接,然后直接点击此链接,就会直接跳转到你的app了。或是长按,在出现的弹出菜单中第二项是
在’XXX’中打开
,这也代表着成功:
或是你将要测试的网址在safari中打开,在出现的网页上方下滑,可以看到有
在”XX”应用中打开
:
出现菜单:
在微信的网页浏览器中也是可以的,虽然微信屏蔽了所有的scheme方式跳转到其它app,但是Universal Links是由系统直接处理的,微信屏蔽不了,这也就实现了从微信跳转到我们的app。
苹果为了方便开发者,提供了一个网页来验证我们编写的这个apple-app-site-association是否合法有效,进入验证网址进行验证:
进入app后的处理
现在用户点击某个链接,直接可以进我们的app了,但是我们的目的是要能够获取到用户进来的链接,根据链接来展示给用户相应的内容。
我们需要在工程里的 AppDelegate 里实现方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
注意
前端开发经常面临跨域问题,必须要求跨域,如果不跨域,就不行。
只有当前webview的url域名,与跳转目标url域名不一致时,Universal Link 才生效。
最后
在各大平台配置通用链接的时候一定要按照官方文档的配置,尤其的是qq的,不明白可以多查阅qq互联的文档