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