android - 如何在华为设备上支持HMS应用链接
问题描述
现在说华为设备,我们了解 2019 年 5 月 16 日之后发布的设备,这些设备在没有 Google 移动服务的情况下发布
在华为开发支持应用链接的过程中,出现了几个问题,提出了以下问题:
- 为什么谷歌应用链接在华为上不起作用?
- 如何在华为设备上支持它们?
- 如何通过应用链接获取数据共享
解决方案
问:为什么谷歌应用链接在华为上不起作用?
A:应用链接被认为是深度链接,需要额外检查。GMS 完成的额外检查,要求assetlinks.json 文件位于您的域下,以便您的域被授权直接打开应用程序,更多信息在这里。
问:如何在华为设备上支持它们?
A:您需要在AG Connect上拥有账户,然后申请您喜欢的任何前缀。然后 AG Connect 将为您生成一个 URL,类似于https://YOUR_PREFIX_HERE.dra.agconnect.link。完成此操作后,您应该向您的 URL 添加deeplink
参数,该参数应该与您用于具有 GMS 的设备的应用链接 URL 完全相同。重要的是它应该是 URL 编码的,例如 https://YOUR_PREFIX_HERE.dra.agconnect.link?deeplink=urlencoded(https.my-host-here.my_prefix-if-I-have&some-data-toshare= SOME-DATA- IN-BASE-64)。
将相同的 url 用于 GMS 应用程序链接,作为 HMS 的深层链接,使您可以使用单个意图过滤器来处理两个应用程序链接。
简而言之:HMS.applink = https://YOUR_PREFIX_HERE.dra.agconnect.link?deeplink=urlencoded(GMS.applink).
问:如何通过应用链接获取数据共享
答:在HMS 文档中,它建议将 AG Connect 应用链接库广告到项目并使用适当的类。但幸运的是,我们可以像处理 GMS 应用程序链接一样做到这一点:我们可以从 Intents 获取数据。
推荐阅读
- android - 构建和部署到 Android 模拟器和 Android 设备 Coursera
- python - QLabel 破坏了布局的中心对齐
- python - 通过python将文本输入(包括多个分隔符)划分为单独的列?
- typescript - 如何根据过滤的键向 TypeScript 推断属性只能是一种类型?
- java - 关于java return 语句的问题**已解决
- javascript - 从字符串制作 HTML
- java - 无法获取在线 ShoutCast 流的标头
- python - 使用python和scrapy从网络中提取文本
- sql-server - 如何根据向下钻取报告中的子级别值更改图表颜色
- python - 如何从另一个 python 程序运行 pytest Suite