如何直接打开华为应用市场?

问题描述 投票:0回答:11

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

android google-play huawei-mobile-services huawei-developers
11个回答
47
投票

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

华为应用程序库

  • 方案:
    market://
    appmarket://
  • 包装:
    com.huawei.appmarket

与。 Google Play 商店:

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

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

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

    for (ResolveInfo app : otherApps) {
        String packageName = app.activityInfo.applicationInfo.packageName;
        if (!packageName.equals("com.huawei.appmarket")) {
            continue;
        }

        intent.addFlags(
            Intent.FLAG_ACTIVITY_NEW_TASK | 
            Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | 
            Intent.FLAG_ACTIVITY_CLEAR_TOP
        );
        intent.setComponent(new ComponentName(packageName, app.activityInfo.name));
        startActivity(intent);
        return;
    }

    //Huawei App Gallery N/A. Open app link in browser.
    //Huawei App ID can be found in the Huawei developer console
    String huaweiAppID = "100864605";

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

这是 Google Play 的片段:

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

    for (ResolveInfo app : otherApps) {
        String packageName = app.activityInfo.applicationInfo.packageName;
        if (!packageName.equals("com.android.vending")) {
            continue;
        }

        intent.addFlags(
            Intent.FLAG_ACTIVITY_NEW_TASK | 
            Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | 
            Intent.FLAG_ACTIVITY_CLEAR_TOP
        );
        intent.setComponent(new ComponentName(packageName, app.activityInfo.name));
        startActivity(intent);
        return;
    }

    //Google Play N/A. Open app link in browser.
    Uri appUri = Uri.parse(
        "https://play.google.com/store/apps/details?id=" + getPackageName()
    );
    intent = new Intent(Intent.ACTION_VIEW, appUri);
    startActivity(intent);
}

这是允许用户选择设备上的任何可用商店的代码片段:

private void startAnyStore() {
    Uri detailsUri = Uri.parse("market://details?id=" + getPackageName());
    Intent intent = new Intent(Intent.ACTION_VIEW, detailsUri);
    intent.addFlags(
        Intent.FLAG_ACTIVITY_NEW_TASK | 
        Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | 
        Intent.FLAG_ACTIVITY_CLEAR_TOP
    );
    startActivity(intent);
}

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


7
投票

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

  1. URL加上你的应用程序的appid,例如AppGallery的appid是27162,然后可以通过这个URL打开它

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

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

  1. URL加上你的应用程序的包名,例如应用市场的包名是com.huawei.appmarket,就可以通过这个URL打开

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

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

希望对您有帮助。


4
投票

在华为应用市场打开应用程序的简单方法:

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");

4
投票

华为应用程序库现在似乎可以使用与 Google Play 相同的 URI 打开详细信息页面:

market://details?id=<applicationId>

我刚刚在 AppGallery v11.1.2.304 上尝试了它,并使用两个商店都存在的 applicationId

adb shell am start -a "android.intent.action.VIEW" -d "market://details?id=busu.blackscreenbatterysaver"


2
投票

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

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

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

检查下面的屏幕截图:


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());
            }
        }
    }

0
投票

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

• 您提到的链接:此处 是应用程序详细信息页面。华为确实支持在AppGallery上使用徽章服务的应用程序详细信息页面。换句话说,您可以将Google链接替换为华为徽章链接。您可以在这里

获取徽章服务的详细信息

• 对于应用上架AppGallery,除部分受邀开发者外,华为并未向所有开发者开放。

希望这对您有所帮助,如有任何疑问请告诉我。


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);

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

-2
投票

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

祝你无论做什么都好运😊

© www.soinside.com 2019 - 2024. All rights reserved.