首页 > 解决方案 > 由于包名不一致导致应用程序启动失败

问题描述

使用huawei AppLinking Service时,查询应用包名,定位到应用详情页。但是,应用程序包名称因渠道而异。比如华为渠道,包名以.huawei结尾,和谷歌渠道不一样。这是否意味着由于包名不一致,无法在所有本地应用商店打开App Linking链接?

标签: huawei-mobile-servicesappgallery-connect

解决方案


这是否意味着由于包名不一致,无法在所有本地应用商店中打开 App Linking 链接?

答案是否定的,因为这个问题有解决方案。

执行以下操作以解决问题:

我们知道,如果应用尚未安装,App Linking 可以将用户重定向到自定义网站,因此您可以使用 Android Intent 创建自定义链接,您可以在其中配置要打开的包名称和回退 URL。基本语法如下:

intent:
   HOST/URI-path    // Optional host 
   #Intent; 
      package=[string]; 
      action=[string]; 
      category=[string]; 
      component=[string]; 
      scheme=[string]; 
S.browser_fallback_url=[encoded_full_url]
end; 

利用上述功能,您可以:

  1. 创建 App Linking 的链接,并使用该setOpenType(CustomUrl)方法设置打开类型,将用户重定向到 Android 平台的自定义网站。涉及的API如下:
.setAndroidLinkInfo(new AppLinking.AndroidLinkInfo.Builder()
.setAndroidDeepLink(Android_LINK)
.setOpenType(CustomUrl)
.setFallbackUrl(BACK_LINK)
.build())
  1. 使用 Android Intent 配置上述自定义网站。这里我以淘宝为例:
"intent://details?id=com.taobao.taobao#Intent;scheme=appmarket;package=com.huawei.appmarket;S.browser_fallback_url=https://play.google.com/store/apps/details?id=com.taobao.taobao;end"

过程如下:

1.使用appmarket方案启动包名为com.huawei.appmarket的应用,即打开华为应用市场。

2.将包名com.taobao.taobao传给华为应用市场。然后,华为应用市场会启动这个包。

3.如果没有找到com.huawei.appmarket,设置S.browser_fallback_url为fallback URL。

4. 后备 URL 是 Google Play 链接。只需将此 URL 中的 id 设置为要打开的包的名称。在本例中,ID 为 com.taobao.taobao。

确保一个Android平台的App Linking项目已经完成。详情请访问:

https://forums.developer.huawei.com/forumPortal/en/topic/0204442462434640048?fid=0101188387844930001

打开原 App Linking 项目,以粗体添加以下信息:

String BACK_LINK = "intent://details?id=com.taobao.taobao#Intent;" +
      "scheme=appmarket;package=com.huawei.appmarket;" +
      "S.browser_fallback_url=https://play.google.com/store/apps/details?" +
      "id=com.taobao.taobao;end";
AppLinking.Builder builder = new AppLinking.Builder()
.setUriPrefix(DOMAIN_URI_PREFIX)
.setDeepLink(Uri.parse(DEEP_LINK))
.setAndroidLinkInfo(new AppLinking.AndroidLinkInfo.Builder()
  .setAndroidDeepLink(Android_DEEP_LINK)
 .setOpenType(CustomUrl)
  .setFallbackUrl(BACK_LINK)
  .build());

在此处输入图像描述

测试:

  1. 在设备上安装demo,创建App Linking的链接,添加到note中。

  2. 卸载应用,模拟未安装应用的场景。

  3. 对于华为手机,点击打开/下载。在弹出的AppGallery中,打开淘宝详情页面。下图为华为浏览器淘宝详情页面。

在此处输入图像描述 在此处输入图像描述

  1. 对于非华为手机,点击打开/下载。在显示的 Google Play 上,打开淘宝详情页面。下图为谷歌浏览器中的淘宝详情页面。 在此处输入图像描述 在此处输入图像描述

  2. 现在问题已解决。如果您遇到类似的问题,只需按照我的示例一步一步更改包名称即可解决问题。

欲知更多详情,请前往:

https://developer.huawei.com/consumer/en/doc/development/AppGallery-connect-Guides/agc-applinking-introduction?ha_source=hms1


推荐阅读