通用链接:
当您支持通用链接时,iOS用户可以点击指向您网站的链接,无需通过Safari即可无缝重定向到已安装的应用程序。如果您的应用程序没有安装,点击链接到您的网站打开您的网站在Safari。
通用链接为您提供了使用自定义URL方案时不会获得的几个关键优势。具体而言,
通用链接是:
- 独特。与自定义网址方案不同,通用链接不能由其他应用程序声明,因为它们使用标准的HTTP或HTTPS链接到您的网站。
- 安全。当用户安装您的应用程序时,iOS会检查您上传到Web服务器的文件,确保您的网站允许您的应用程序以其名义打开网址。只有你可以创建和上传这个文件,所以你的网站与你的应用程序的关联是安全的。
- 灵活。即使未安装应用程序,通用链接也能正常工作。当你的应用程序没有安装,点击一个链接到您的网站打开Safari的内容,如用户所期望的。
- 简单。一个网址适用于您的网站和您的应用程序。
- 私人的。其他应用程序可以与您的应用程序通信,而无需知道您的应用程序是否已安装
实现条件:
- 1.一个注册的域名
- 2.支持JSON文件上传到域名
- 3.iOS9及以上版本
- 4.需要真机测试,模拟器不支持
- 5.需要支持HTTPS访问、且不能有任何重定向
第一步
在Xcode的capabilities里Associated Domains选项中添加APP的通用链接域名,必须用applinks: 开头
111.png
注意:这里的域名是随便填的,是支持你需要的Universal Links的域名, 如:
1.
applinks:baidu.com
2.applinks:www.aiqiyi.com
3.applinks:www.youku.com
当用户在安装APP时,系统将从这里填入的域名下请求文件apple-app-site-association
第二步
登录开发者中心,检查是否已经打开了该选项
222.png
第三步
创建apple-app-site-association文件(也是最关键一步)
首先可以先看一下别人是怎么写的
哔哩哔哩的文件地址
腾讯视频的文件地址
开发者中心给的模板:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "9JA89QQLNQ.com.apple.wwdc",
"paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]
},
{
"appID": "ABCD1234.com.apple.wwdc",
"paths": [ "*" ]
}
]
}
}
- 1.对照模板只需改动details数组内容,其他所有格式都是固定的,不得修改。
- 2.details对应的数组内,一个字典代表一个APP。数组的顺序决定了系统跳转打开APP的匹配顺序。
- 3.“appID”由两部分组成.第一部分:9JA89QQLNQ是Team ID,第二部分:com.apple.wwdc是Boundle ID 。
- 4.“paths”是设定一个APP支持的路径列表,只有这些指定的路径的链接,才能被app所处理,举个例子:如果你的网站是www.yohunl.com,你的path写的是”/support/*”,那么当用户点击www.yohunl.com/support/myDoucument,就可以进入你的app了,相反www.yohunl.com/other 就不会.(当然也可以用 * 代表该域名下所有地址都处理)。
- 5.paths对应的路径是大小写敏感的。
- 6.apple-app-site-association文件不得有后缀名
- 7.将文件上传到你的HTTPS web服务器跟目录或者.well-known的子目录。
文件需要通过HTTPS访问且没有任何重定向-
https:// / apple-app-site-association或
https:// / .well-known / apple-app-site-association。
**注意
-
在创建apple-app-site-association文件时,需严格按照文档的要求
33.png
意思就是JSON文件的MIME媒体类型为application/json。
如何检测你上传到服务器的文件格式是否正确?
方法:打开终端,输入命令:
curl -I 'https://xxxx.com/apple-app-site-association'
这里给出一个参考:
4444.png
**
第四步
验证:
如果以上步骤都已经完成,可以在设备备忘录中输入Universal Links url, 然后长按链接,如果出现打开APP的选项,则代表成功
如:
WechatIMG132.jpeg