什么是Universal Link(通用链接)

Universal Link是苹果在WWDC 2015上提出的iOS 9的新特性之一。在提供更流畅的用户体验,使应用链接(例如网址)能够直接打开相应的iOS应用程序,而无需经过浏览器。

由于苹果iOS 13系统版本安全升级,微信SDK1.8.6版本要求支持Universal Links方式跳转,以便进行合法性校验,提升安全性。

Universal Link(通用链接)看起来就是一条普通的https链接,当然是我们在该链接域名根目录配置过的一个链接,也可以在该链接中放置对应的H5页面。

当用户的点击该链接,只要手机中安装了支持该链接的APP就会直接进入到APP中。如果没有安装APP则会跳转到Safari浏览器中,展示H5页面。对用户来说则是一个无缝跳转的过程。

使用Universal Link(通用链接)的好处

安全:当用户的手机上安装了你的APP,那么系统会去你配置的网站上去下载你上传上去的说明文件(这个说明文件声明了当前该HTTPS链接可以打开哪些APP)。因为只有你自己才能上传文件到你网站的根目录,所以你的网站和你的APP之间的关联是安全的;

兼容:Universal Link(通用链接)本身是一个HTTPS链接,所以有更好的兼容性;

简单:当用户手机上没有安装你的APP的时候,Universal Link(通用链接)也能够工作。如果你愿意,在没有安装你的app的时候,用户点击链接,会在safari中展示你网站的内容;

私有: 其它APP可以在不需要知道你的APP是否安装了的情况下和你的APP相互通信。

支持Universal Link(通用链接)

先决条件:必须有一个支持HTTPS的域名,并且拥有该域名下上传到根目录的权限(为了上传Apple指定文件)。

设置Universal Link(通用链接)

设置一个Universal Links网址,https开头,以“/”结尾, 建议带path,比如:https://domain.com/app/

1、登录苹果开发者网站 ,在“Certificates, Identifiers & Profiles”页面选择“Identifiers”中选择对应的App ID,确保开启Associated Domains服务

注:开启Associated Domains服务后需要重新生成profile文件,提交云端打包时使用

2、手动创建apple-app-site-association文件

创建一个内容为json格式的文件,苹果将会在合适的时候,从我们在项目中填入的域名请求这个文件。

这个文件名必须为apple-app-site-association,切记没有后缀名

文件内容大概是这样子:

{
“applinks”: {
“apps”: [],
“details”: [
{
“appID”:”8ARUHGUQNH.com.AppSample”,
“paths”: [ “/app/*“]
}
]
}
}

appID:

组成方式是TeamID.BundleID(就是第一步截图中的1和2)。

paths:

设定你的app支持的路径列表,只有这些指定路径的链接,才能被app所处理。

举个例子:

如果你的网站是www.domain.com,你的path写的是”/support/*”,那么当用户点击www.domain.com/support/myDoucument,就可以进入你的app了,相反www.domain.com/other 就不会.

注:path是大小写敏感的!  *号表示任意路径.

微信SDK要求通用链接apple-app-site-association文件中 path不能带query参数,且末尾必须添加通配符*号

3、部署apple-app-site-association文件到自己的云服务器,配置SSL证书解析域名,这是为了苹果能获取到你上传的文件。

保存文件的地址

  • 根目录 /.well-known 文件夹下
  • 如果配置https://domain.com/app/,可以上传到app目录下

当你在浏览器中可以正常访问这个文件链接后,就说明配置正确。

注:

  1. iOS会先请求https://domain.com/.well-known/apple-app-site-association
  2. 如果此文件请求不到,再去请求https://domain.com/app/apple-app-site-association

所以如果想要避免服务器接收过多GET请求,可以直接把apple-app-site-association放在./well-known目录下

4、在Xcode开发工具配置Associated Domains

在其中的Domains中填入你想支持的域名,必须以applinks:为前缀

如:applinks:domain

测试Universal Links(通用链接)是否生效

在iOS设备中的备忘录中添加记事本或短信中输入App能识别的链接,然后直接点击此链接,就会直接跳转到你的app了

或是长按,在出现的弹出菜单中第二项是“在’XXX’中打开”,这也代表着成功。

参考文档:

https://uniapp.dcloud.net.cn/api/plugins/universal-links

作者 admin

百度广告效果展示