如何在华为设备上通过 HMS 支持应用链接

问题描述

现在说华为设备,我们理解的是 2019 年 5 月 16 日之后发布的设备,这些设备没有谷歌移动服务发布

在华为支持应用链接的开发过程中,出现了几个问题,并提出了以下问题:

  1. 为什么谷歌应用链接在华为上不起作用?
  2. 如何在华为设备上支持他们?
  3. 如何获取通过应用链接共享的数据

解决方法

问:为什么谷歌应用链接在华为上不起作用?

:应用链接被视为经过额外检查的深层链接。由 GMS 完成的额外检查,要求您的域下有 assetlinks.json 文件,以便授权您的域直接打开应用程序,more info here

问:如何在华为设备上支持它们?

答:您需要在 AG Connect 上拥有帐户,然后申请您喜欢的任何前缀。然后 AG Connect 会为您生成一个 URL,类似于 https://YOUR_PREFIX_HERE.dra.agconnect.link。完成此操作后,您应该将 deeplink 参数添加到您的网址中,该参数应与您用于 GMS 设备的应用链接网址完全相同。重要的是它应该是 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).

具有用于 GMS 应用链接的相同 url,作为 HMS 的深层链接,使您可以使用单个意图过滤器来处理两个应用链接。

简而言之:HMS.applink = https://YOUR_PREFIX_HERE.dra.agconnect.link?deeplink=urlencoded(GMS.applink).

问:如何获取通过应用链接共享的数据

答:HMS documentation 中,它建议将 AG Connect 应用链接库添加到项目中并使用适当的类。但幸运的是,我们可以采用与处理 GMS 应用链接相同的方式:我们可以从 Intent 中获取数据。

,
  1. 为什么谷歌应用链接在华为上不起作用?

对于基于GMS的手机,应用安装时需要调用GMS API绑定域名和应用。但是,从中国大陆无法正常访问该API。对于基于HMS的手机,应用安装时不会调用GMS API绑定域名和应用。相反,会验证应用程序网站上的 assetlinks.json 文件。因此,基于 HMS 的手机支持应用链接服务。需要注意的是,华为应用链接的底层技术是基于Android应用链接和iOS通用链接。但是,华为应用链接提供以下附加功能:

•   Support all platforms

•   Support short links

•   Support deferred deep links
  1. 如何在华为设备上支持它们? 您需要有一个华为开发者账号,然后在华为应用市场中创建一个应用和项目。华为应用链接支持多种方式创建链接:

    1)。在 AppGallery Connect 中创建链接,请参阅link

    2)。在客户端调用 API 创建链接,请参考Link

    3)。手动构建链接,请参考Link

  2. 如何通过应用链接获取共享数据 您可以通过共享应用程序链接在客户端接收链接,请参阅Link

,

对于基于GMS的手机,应用安装时需要调用GMS API绑定域名和应用。但是,从中国大陆无法正常访问该API。对于基于HMS的手机,应用安装时不会调用GMS API绑定域名和应用。