通用链接(Universal Links)早在iOS 9中就已经引入了,是一种能够方便的通过传统 HTTP 链接来启动 APP的技术。实现通用链接需要以下几步:
### 一、为App ID勾选Associated Domains功能
登录苹果开发网站,找到你的应用包名App ID,勾选上Associated Domains功能,然后更新你的mobileprovision描述文件重新上传到控制台。
### 二、配置UZApp.entitlements文件
配置UZApp.entitlements文件的方式参照另一篇教程iOS修改entitlements文件,内容如下,需要把applinks:后面的内容换成你自己想要关联的域名,系统会从该域名请求一个 JSON 文件 apple-app-site-association,可以配置关联多个域名。配置完成后将UZApp.entitlements文件放置到网页包的res文件夹下,然后同步代码到云端。
```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:xxx.com</string>
</array>
</dict>
</plist>
```
### 三、上传 apple-app-site-association 文件
这是一个JSON格式的文本文件,内容如下,其中appID为你苹果开发者账号的团队标识和应用的包名组成,paths可以配置多个,可以直接配置"*",表示整个域名下网址都支持Universal Links,添加paths的时候注意区分大小写。
```
{
"applinks": {
"apps": [],
"details": [
{
"appID": "6KYKP3473B.com.xxx.app",
"paths": ["/wwdc/news/*"]
}
]
}
}
```
将文件放置在上面配置的域名根目录下,如果在浏览器能打开https://xxx.com/apple-app-site-association,那么说明配置成功。
> 注:文件保存时不要加.json后缀,必须通过https访问并且服务器CA证书需是受信任的。
### 四、云编译应用
安装到手机上面并打开,然后打开手机上面的备忘录,输入https://xxx.com/wwdc/news,点击该链接后能直接启动应用则说明整个流程正确。应用里面可以通过监听appintent事件来获取具体的链接地址做相应处理。
> 注:在web页面通过a标签跳转来拉起应用时,当前web页面地址的域名和通用链接的域名需要不同。