首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包名不一致导致应用启动失败

包名不一致导致应用启动失败
EN

Stack Overflow用户
提问于 2021-05-27 18:14:51
回答 1查看 75关注 0票数 1

当我使用华为AppLinking服务时,会查询app包名来定位app详情页。但是,应用程序包名称会因渠道而异。例如,对于华为渠道,包名以.huawei结尾,这与谷歌channel.Does中的包名不同,这意味着由于包名不一致,应用链接链接不可能在所有本地应用商店中打开?

EN

回答 1

Stack Overflow用户

发布于 2021-05-28 09:04:07

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

答案是no,因为这个问题有一个解决方案。

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

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

代码语言:javascript
复制
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; 

利用前面的函数,您可以:

涉及的接口如下:

代码语言:javascript
复制
.setAndroidLinkInfo(new AppLinking.AndroidLinkInfo.Builder()
.setAndroidDeepLink(Android_LINK)
.setOpenType(CustomUrl)
.setFallbackUrl(BACK_LINK)
.build())

  1. 使用Android意图配置前面的自定义网站。这里,我以淘宝为例:

代码语言:javascript
复制
"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.使用应用市场方案启动包名为com.huawei.appmarket的app,即打开华为AppGallery。

2.向华为AppGallery传递包名为com.taobao.taobao。然后,华为AppGallery将启动此套餐。

3.如果没有找到com.huawei.appmarket,则将S.browser_fallback_url设置为备用URL。

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

确保Android平台的App链接工程已经完成。有关详细信息,请访问:

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

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

代码语言:javascript
复制
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. 在设备上安装演示,创建应用程序链接的链接,并将其添加到备注中。

  1. 卸载应用程序以模拟未安装应用程序的情况。

  1. 对于华为手机,请点击打开/下载。在显示的AppGallery上,打开淘宝详细信息页面。下图显示了华为浏览器中的淘宝详情页面。

若要使用非华为手机,请点击Open/Download.

  1. 在显示的Google Play上,打开淘宝详情页面。下图显示了Google Chrome中的淘宝详情页面。

  1. 现在问题已经解决了。如果您遇到类似的问题,只需按照我的示例一步一步地操作并更改包名称即可解决此问题。

有关更多详细信息,请访问:

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67720080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档