How to open the Huawei AppGallery directly?
Asked Answered
M

11

36

I know that is possible to open my app (based on package name) in Google Play Store, but how to do same in Huawei AppGallery?

Mutineer answered 10/12, 2018 at 12:24 Comment(5)
i think you can'tAndriette
It is not clear what you want to open from what. your app from gallery, or gellery from your app?Appendicectomy
@VladyslavMatviienko Open my app in Huawei AppGallery.Mutineer
you will have to modify the Huawei AppGallery code for it to open your app. That's only wayAppendicectomy
https://mcmap.net/q/427581/-implement-rate-us-and-more-apps-link-for-huawei-app-galleryMatrilocal
D
47

Opening your app in the Huawei App Gallery is similar to opening Google Play Store:

Huawei App Gallery:

  • Scheme: market:// or appmarket://
  • Package: com.huawei.appmarket

vs. Google Play Store:

  • Scheme: market://
  • Package: com.android.vending

Here is a snippet for the Huawei App Gallery:

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, PackageManager.GET_ACTIVITIES);

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

Here is the snippet for 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);
}

Here is the snippet to allow the user to pick Any Available Store on the device:

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);
}
Diesis answered 11/10, 2019 at 14:13 Comment(0)
M
8

I agree with @Pierre

But I also think you can resolve activity with links

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

or

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

For example, https://appgallery.cloud.huawei.com/uowap/index.html#/detailApp/C101652909?appId=C101652909

Maid answered 16/6, 2020 at 12:46 Comment(2)
Be careful to that C before the HUAWEI_APP_IDThereat
What is C? Is that for China mainland distribution or something else?Kinnie
C
7

If your application has already released on the Huawei Appgallery, then you can use this url to open the application directly.

  1. URL with the appid of your applcation, for example the AppGallery's appid is 27162, then can open it with this URL

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

You can replace the appid with your own appid .

  1. URL with the package name of your application, for example the AppGallery's package name is com.huawei.appmarket, then can open it with this URL

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

You can replace the package name with your own package name.

Wish it can be helpful.

Cuellar answered 21/1, 2021 at 12:25 Comment(0)
R
4

A simple way to open app in Huawei App Gallery store:

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

then call it from your activity:

reviewApp(this.getPackageName());

or:

reviewApp("com.myapp.android");
Roosevelt answered 11/3, 2020 at 17:0 Comment(1)
Thank you! Only this approach opens Huawei App Gallery app directly. Other urls first navigates to app page in browser and then to Huawei App Gallery app (i.e redirecting from browser).Landbert
M
4

It seems Huawei App Gallery can now open the details page with the same URI that works for Google Play: market://details?id=<applicationId>

I just tried it out on AppGallery v11.1.2.304 with an applicationId that exists on both stores: adb shell am start -a "android.intent.action.VIEW" -d "market://details?id=busu.blackscreenbatterysaver"

Monogamy answered 7/4, 2021 at 8:46 Comment(5)
This works, but on my device is also APKPure as third party market installed. With this solution it will show a dialog to decide which store app should be used to handle the intent. Also some huawei devices still have Google Play Store and Huawei App Gallery installed, which might also trigger this dialog. In our use case this is not the desired behavior.Clyve
so what's your desired behavior?Monogamy
In our case we want the Huawei App Gallery to open automatically without asking the user for his preferred store app. Common use cases are either asking for app rating/feedback, app update or downloading another app. In all cases we do not want that the user picks the APKPure. Direct linking to another app works normally via app links instead of plain deep links. The scheme market:// seems to works just as a normal deep link.Clyve
Then if you wish to skip the disambiguation dialog altogether, the only way is using a deep link with the appmarket:// schema as Pierre indicated in the accepted answer. For me, the AppGallery https links didn't behave like app links = I still got the disambiguation dialog (it's true that selecting the Huawei Browser from the list of apps to handle the intent, it will eventually launch the AppGallery native app on the device with your app's details) - try ` adb shell am start -a "android.intent.action.VIEW" -d "appgallery.huawei.com/#/app/C103639735"`.Monogamy
I mentioned the universal solution using the market:// schema (instead of different deep links per store) because that's more convenient when you code an app you wish to be platform agnostic.Monogamy
A
2

You can use the badge service provided by HUAWEI AppGallery to promote your app, including preparing materials for making a badge, configuring an app link, and obtaining referrer statistics. With the service, you can efficiently collect statistics on app downloads in AppGallery and provide the silent installation service for users to improve the promotion effect.

When a user taps your badge in a channel, the user is redirected to your app details page on AppGallery. The user can tap Install to automatically download and install your app.

  • Making a badge
  1. Sign in to AppGallery Connect and click In-app distribution.
  2. Click the Make badge tab.
  3. Click Add and add an app either by searching by keyword or app ID. (You can only make a badge for a released app.)
  4. Set Badge type, Display badge in, Channel name, and Referrer. The referrer is optional. If attribution statistics is required, you need to set the parameter.
  5. Click Generate badge to obtain the badge and its link.

Check the screenshot below: badge service

Azide answered 22/9, 2020 at 2:39 Comment(1)
This! I have a feeling that OP wanted this.Kinnie
C
1

Launch Play Store/AppGallery via package name.

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());
            }
        }
    }
Chretien answered 30/12, 2020 at 11:50 Comment(0)
C
0

As for how to link to an app detail page or an app list page on AppGallery:

• The link that you referred: here is to an app detail page. Huawei does support the app detail page using badge service on AppGallery. In other words, you can replace the Google link with Huawei badge link. You can get the detail information of badge service at here

• For app listing on AppGallery, Huawei has not opened the ability to all developers except some invited developers.

Hope this help and let me know if any questions.

Cohesion answered 2/12, 2020 at 22:24 Comment(0)
I
0

Here is how to start App Gallery directly:

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);
Isaak answered 16/12, 2020 at 8:16 Comment(0)
B
0

I think the shortest and easiest one would be running this simple link: https://appgallery.cloud.huawei.com/ag/n/app/<YOUR_APP_ID>.

No need to config anything and the rest will handled by Huawei automatically.

How to get YOUR_APP_ID?

  1. Go to Huawei App Gallery
  2. Search for your app (e.g. WeChat)
  3. Copy the ID in the end of the link (e.g. https://appgallery.huawei.com/#/app/C5683)
  4. In this case the APP_ID for WeChat would be C5683
  5. So the Huawei app link for WeChat would be https://appgallery.cloud.huawei.com/ag/n/app/C5683
Benzoin answered 5/8, 2021 at 5:35 Comment(0)
B
-2

Ok bro. You can use the package name. com.huawei.appmarket and use Intent. There is a similar question here. Launch an application from another application on Android

Good luck for whatever you doing 😊

Brahman answered 10/12, 2018 at 13:27 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.