apicloud apicloud

注册
查看: 22168|回复: 43

[APP开发技巧] 【官方】通用链接(Universal Links)实现

 

主题:
25
帖子:
7791
云币:
7340

[APP开发技巧] 【官方】通用链接(Universal Links)实现

 
22168 43 | 发表于 2017-11-3 17:28:30 |阅读模式 | |
本帖最后由 技术咨询-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

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3. <plist version="1.0">
  4. <dict>
  5.     <key>com.apple.developer.associated-domains</key>
  6.     <array>
  7.         <string>applinks:xxx.com</string>
  8.     </array>
  9. </dict>
  10. </plist>
复制代码

如果同时还支持 App Clip,那么还需要加上 appclips,如:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3. <plist version="1.0">
  4. <dict>
  5.     <key>com.apple.developer.associated-domains</key>
  6.     <array>
  7.         <string>applinks:xxx.com</string>
  8.         <string>appclips:xxx.com</string>
  9.     </array>
  10. </dict>
  11. </plist>
复制代码

系统会从该域名请求一个 JSON 文件 apple-app-site-association,可以配置关联多个域名。配置完成后将 UZApp.entitlements 文件放置到网页包的 res 文件夹下,然后同步代码到云端。

三、上传 apple-app-site-association 文件

这是一个 JSON 格式的文本文件,内容如下,其中 appID 为你苹果开发者账号的团队标识和应用的包名组成,paths 可以配置多个路径,可以直接配置"*",表示整个域名下网址都支持 Universal Links,添加 paths 的时候注意区分大小写。

  1. {
  2.     "applinks": {
  3.         "apps": [],
  4.         "details": [
  5.             {
  6.                 "appID": "ABCED12345.com.xxx.app",
  7.                 "paths": ["/wwdc/news/*"]
  8.             }
  9.         ]
  10.     }
  11. }
复制代码

如果同时支持 App Clip,则需要添加 appclips 字段,其中 apps 里面值为你苹果开发者账号的团队标识和 App Clip 应用的包名组成,如:
  1. {
  2.     "appclips": {
  3.         "apps": ["ABCED12345.com.xxx.app.Clip"]
  4.     },
  5.     "applinks": {
  6.         "apps": [],
  7.         "details": [
  8.             {
  9.                "appID": "ABCED12345.com.xxx.app",
  10.                "paths": ["/wwdc/news/*"]
  11.             }
  12.         ]
  13.     }
  14. }
复制代码

将文件放置在上面配置的域名根目录下,如果在浏览器能打开 https://xxx.com/apple-app-site-association,那么说明配置成功。

注:文件保存时不要加 .json 后缀必须通过 https 访问并且服务器 CA 证书需是受信任的。

四、云编译应用,安装到手机上面并打开,然后打开手机上面的备忘录,输入 https://xxx.com/wwdc/news,点击该链接后能直接启动应用则说明整个流程正确。应用里面可以通过监听 appintent 事件来获取具体的链接地址做相应处理。

注:在 web 页面通过 a 标签跳转来拉起应用时,当前 web 页面地址的域名和通用链接的域名不能相同,否则无法拉起应用。














主题:
25
帖子:
7791
云币:
7340
 楼主| 发表于 2019-9-24 09:11:39 |
用过都说好 发表于 2019-9-23 19:51
其中appID为你苹果开发者账号的团队标识和应用的包名组成

苹果开发者账号的团队标识在哪看啊 ...

Membership里面的team id

职业车手

UID:441392

主题:
33
帖子:
2306
云币:
2775

APICloud粉丝志愿者一周年中秋节女朋友装逼侠单身狗超人锤子侠SB侠我李白贼6APICloud大会专属勋章不觉明厉强者王者足球狗捣蛋鬼儿童节快乐

发表于 2017-11-3 19:17:35 |
前排

主题:
233
帖子:
1619
云币:
4590

APICloud粉丝APICloud毕业勋章APICloud骨灰粉一周年中秋节社会摇你吃屎!首长好!托马斯全旋女朋友足球狗儿童节快乐

发表于 2017-11-4 00:19:17 |
占位置走人
APP、小程序、公众号、企业官网项目合作请点击QQ:1424445608

马路杀手

UID:182173

主题:
49
帖子:
167
云币:
436
发表于 2017-11-4 09:04:23 |
支持

实习司机

UID:509079

主题:
33
帖子:
105
云币:
86
发表于 2017-11-4 10:43:48 |
支持
支持
支持

转正司机

UID:33081

主题:
106
帖子:
404
云币:
1806
发表于 2017-11-4 13:19:34 |

主题:
75
帖子:
603
云币:
792
发表于 2017-11-6 09:58:34 |
看不懂

新手上路

UID:535463

主题:
19
帖子:
71
云币:
65
发表于 2017-11-6 16:11:22 |
版主辛苦  撒花

马路杀手

UID:283339

主题:
74
帖子:
232
云币:
302

你吃屎!女朋友

发表于 2017-11-8 20:44:30 |

驾校小白

UID:461262

主题:
6
帖子:
47
云币:
39

女朋友强者王者不觉明厉APICloud粉丝装逼侠

发表于 2017-11-11 11:03:52 来自手机 |
感谢分享
12345下一页
您需要登录后才可以回帖 登录 | 立即注册

快速回复 返回顶部 返回列表