28

我知道可以在 Google Play 商店中打开我的应用程序(基于包名称),但如何在华为 AppGallery 中打开我的应用程序?

4

11 回答 11

38

在华为应用程序库中打开您的应用与打开 Google Play 商店类似:

华为 App Gallery使用自己的方案appmarket://

  • 方案: appmarket://
  • 包裹: com.huawei.appmarket

Google Play 商店:

  • 方案: market://
  • 包裹: com.android.vending

以下是华为应用程序库的片段:

private void startHuaweiAppGallery() {
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("appmarket://details?id=" + getPackageName()));
    List<ResolveInfo> otherApps = getPackageManager().queryIntentActivities(intent, 0);

    boolean agFound = false;

    for (ResolveInfo app : otherApps) {
        if (app.activityInfo.applicationInfo.packageName.equals("com.huawei.appmarket")) {
            ComponentName psComponent = new ComponentName(app.activityInfo.applicationInfo.packageName, app.activityInfo.name);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_CLEAR_TOP);
            intent.setComponent(psComponent);
            startActivity(intent);

            agFound = true;
            break;
        }
    }

    //Optional, Or copy the Google Play Store URL here (See below)
    if (!agFound) {
        //Your Huawei app ID can be found in the Huawei developer console
        final string HUAWEI_APP_ID = "100864605";

        //ex. https://appgallery.cloud.huawei.com/marketshare/app/C100864605
        intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://appgallery.cloud.huawei.com/marketshare/app/C" + HUAWEI_APP_ID));
        startActivity(intent);
    }
}

以下是Google Play 的片段:

private void startGooglePlay() {
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + getPackageName()));
    List<ResolveInfo> otherApps = getPackageManager().queryIntentActivities(intent, 0);

    boolean psFound = false;

    for (ResolveInfo app : otherApps) {
        if (app.activityInfo.applicationInfo.packageName.equals("com.android.vending")) {
            ComponentName psComponent = new ComponentName(app.activityInfo.applicationInfo.packageName, app.activityInfo.name);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_CLEAR_TOP);
            intent.setComponent(psComponent);
            startActivity(intent);

            psFound = true;
            break;
        }
    }
    if (!psFound) {
        intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + getPackageName()));
        startActivity(intent);
    }
}

编辑

华为 App Gallery现在也支持与Google Play Store相同的Schememarket://com.huawei.appmarket

于 2019-10-11T14:13:51.810 回答
8

我同意@Pierre

但我也认为您可以通过链接解决活动

https://appgallery8.huawei.com/#/app/C<HUAWEI_APP_ID>

或者

https://appgallery.cloud.huawei.com/uowap/index.html#/detailApp/C<HUAWEI_APP_ID>?appId=C<HUAWEI_APP_ID>

例如https://appgallery.cloud.huawei.com/uowap/index.html#/detailApp/C101652909?appId=C101652909

于 2020-06-16T12:46:53.467 回答
4

如果您的应用已经在华为应用市场上发布,那么您可以使用该网址直接打开应用。

  1. 你的applcation的appid的URL,例如AppGallery的appid是27162,那么就可以用这个URL打开

https://appgallery.huawei.com/#/app/C27162

您可以将 appid 替换为您自己的 appid 。

  1. 你的应用包名的URL,例如AppGallery的包名是com.huawei.appmarket,那么就可以用这个URL打开它

https://appgallery.cloud.huawei.com/appDetail?pkgName=com.huawei.appmarket

您可以将包名称替换为您自己的包名称。

希望它可以有所帮助。

于 2021-01-21T12:25:59.783 回答
2

看来华为应用程序库现在可以使用适用于 Google Play 的相同 URI 打开详细信息页面:market://details?id=<applicationId>

我刚刚在 AppGallery v11.1.2.304上试用了它,两个商店都存在applicationIdadb shell am start -a "android.intent.action.VIEW" -d "market://details?id=busu.blackscreenbatterysaver"

于 2021-04-07T08:46:59.860 回答
2

在华为应用商店打开应用的简单方法:

public void reviewApp(String packageName){
        try {
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("appmarket://details?id=" + packageName));
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
        } catch (ActivityNotFoundException anfe) {
            Toast.makeText(this, "Huawei AppGallery not found!", Toast.LENGTH_SHORT).show();
        }
}

然后从您的活动中调用它:

reviewApp(this.getPackageName());

或者:

reviewApp("com.myapp.android");
于 2020-03-11T17:00:18.993 回答
1

通过包名启动 Play Store/AppGallery。

private boolean openInStore(String uri){
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_CLEAR_TOP);
        try {
            startActivity(Intent.createChooser(intent,getString(R.string.open_with)));
            return true;
        } catch (ActivityNotFoundException anfe) {
            return false;
        }
    }

    private void startOpenInStore() {
        String playStoreScheme = "market://details?id=", huaweiScheme = "appmarket://details?id=";
        if (!openInStore(playStoreScheme+getPackageName())) {
            if (!openInStore(huaweiScheme + getPackageName())) {
                openInStore("https://play.google.com/store/apps/details?id=" + getPackageName());
            }
        }
    }
于 2020-12-30T11:50:57.047 回答
0

您可以使用华为应用市场提供的徽章服务来推广您的应用,包括准备制作徽章的材料、配置应用链接、获取Referrer统计。通过该服务,您可以高效地统计AppGallery中的应用下载量,并为用户提供静默安装服务,提高推广效果。

当用户在频道中点击您的徽章时,用户将被重定向到您在 AppGallery 上的应用详情页面。用户可以点击安装以自动下载并安装您的应用程序。

  • 制作徽章
  1. 登录AppGallery Connect并点击In-app distribution
  2. 单击制作徽章选项卡。
  3. 单击添加并通过按关键字或应用 ID 搜索来添加应用。(您只能为已发布的应用制作徽章。)
  4. 设置徽章类型显示徽章频道名称推荐人。推荐人是可选的。如果需要归因统计,则需要设置该参数。
  5. 单击生成徽章以获取徽章及其链接。

检查下面的屏幕截图: 徽章服务

于 2020-09-22T02:39:02.657 回答
0

至于如何链接到AppGallery上的应用详情页面或应用列表页面:

• 您引用的链接:这里 是应用详细信息页面。华为确实支持使用 AppGallery 上的徽章服务的应用详情页面。也就是说,您可以将 Google 链接替换为华为徽章链接。您可以在此处获取徽章服务的详细信息

• 对于AppGallery上的应用列表,除部分受邀开发者外,华为尚未向所有开发者开放能力。

希望这有帮助,如果有任何问题,请告诉我。

于 2020-12-02T22:24:34.227 回答
0

我认为最短和最简单的方法是运行这个简单的链接:https://appgallery.cloud.huawei.com/ag/n/app/<YOUR_APP_ID>.

无需配置任何东西,其余的将由华为自动处理。

如何获得 YOUR_APP_ID?

  1. 前往华为应用库
  2. 搜索您的应用程序(例如微信
  3. 复制链接末尾的ID(例如https://appgallery.huawei.com/#/app/C5683
  4. 在这种情况下,微信的 APP_ID 将是C5683
  5. 所以微信的​​华为应用链接是https://appgallery.cloud.huawei.com/ag/n/app/C5683
于 2021-08-05T05:35:32.020 回答
0

以下是直接启动 App Gallery 的方法:

Intent intent = new Intent(Intent.ACTION_VIEW);
Uri.Builder uriBuilder = Uri.parse("https://appgallery.cloud.huawei.com/ag").buildUpon();
intent.setData(uriBuilder.build());
intent.setPackage("com.huawei.appmarket");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
于 2020-12-16T08:16:31.453 回答
-2

没问题兄弟。您可以使用包名称。com.huawei.appmarket 并使用 Intent。这里有一个类似的问题。从 Android 上的另一个应用程序启动一个应用程序

祝你无论做什么都好运

于 2018-12-10T13:27:52.963 回答