Как напрямую открыть Huawei AppGallery?

я думаю ты не можешь

Radesh 10.12.2018 13:29

Непонятно, что с чего открывать. ваше приложение из галереи или гель из вашего приложения?

Vladyslav Matviienko 10.12.2018 13:37

@VladyslavMatviienko Открой мое приложение в Huawei AppGallery.

Michalsx 10.12.2018 13:40

вам нужно будет изменить код Huawei AppGallery, чтобы он открывал ваше приложение. Это единственный способ

Vladyslav Matviienko 10.12.2018 13:41
27
4
9 573
11

Ответы 11

Хорошо, братан. Вы можете использовать имя пакета. com.huawei.appmarket и используйте Intent. Здесь есть аналогичный вопрос. Запустить приложение из другого приложения на Android

Удачи тебе во всем ?

Открытие вашего приложения в галерее приложений Huawei аналогично открытию Google Play Store:

Галерея приложений Huawei использует собственную схему appmarket://:

  • Схема:appmarket://
  • Упаковка:com.huawei.appmarket

по сравнению с Google Play магазин:

  • Схема:market://
  • Упаковка:com.android.vending

Вот отрывок для Галерея приложений Huawei:

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

Вот фрагмент для Гугл игры:

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

Редактировать

Галерея приложений Huawei теперь также поддерживает тот же Схема, что и Google Play магазин: market://com.huawei.appmarket

Простой способ открыть приложение в магазине Huawei App Gallery:

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

Я согласен с @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

Будьте осторожны, чтобы C был перед HUAWEI_APP_ID.

Milore 19.05.2021 10:25

Вы можете использовать служба значков, предоставляемая HUAWEI AppGallery для продвижения своего приложения, включая подготовку материалов для создания значка, настройку ссылки приложения и получение статистики рефереров. С помощью службы вы можете эффективно собирать статистику по загрузкам приложений в AppGallery и предоставлять пользователям услугу автоматической установки для улучшения эффекта продвижения.

Когда пользователь нажимает ваш значок в канале, он перенаправляется на страницу сведений о вашем приложении в AppGallery. Пользователь может нажать Установить, чтобы автоматически загрузить и установить ваше приложение.

  • Изготовление значка
  1. Войдите в AppGallery Connect и щелкните Распространение в приложении.
  2. Щелкните вкладку Сделать значок.
  3. Щелкните Добавлять и добавьте приложение, выполнив поиск по ключевому слову или идентификатору приложения. (Вы можете сделать значок только для выпущенного приложения.)
  4. Установите Тип значка, Отображать значок в, Название канала и Реферер. Реферер не является обязательным. Если требуется статистика атрибуции, необходимо установить параметр.
  5. Щелкните Создать значок, чтобы получить значок и ссылку на него.

Посмотрите скриншот ниже: badge service

Что касается того, как сделать ссылку на страницу сведений о приложении или страницу со списком приложений в AppGallery:

• Ссылка, на которую вы ссылались: здесь, ведет на страницу с подробными сведениями о приложении. Huawei поддерживает страницу сведений о приложении с помощью службы значков в AppGallery. Другими словами, вы можете заменить ссылку Google ссылкой на значок Huawei. Подробную информацию о выдаче бейджей можно получить по адресу здесь.

• В отношении размещения приложений в AppGallery компания Huawei не предоставила возможность всем разработчикам, за исключением некоторых приглашенных разработчиков.

Надеюсь на эту помощь и дайте мне знать, если возникнут вопросы.

Вот как напрямую запустить 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);

Запустите 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());
            }
        }
    }

Если ваше приложение уже опубликовано в галерее приложений Huawei, вы можете использовать этот URL-адрес, чтобы напрямую открыть приложение.

  1. URL-адрес с appid вашего приложения, например appid AppGallery - 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

Вы можете заменить имя пакета своим собственным именем.

Желаю, чтобы это было полезно.

Кажется, Huawei App Gallery теперь может открывать страницу сведений с тем же URI, который работает для Google Play: market://details?id=<applicationId>.

Я только что попробовал это в AppGallery Версия 11.1.2.304 с applicationId, который существует в обоих магазинах: adb shell am start -a "android.intent.action.VIEW" -d "market://details?id=busu.blackscreenbatterysaver"

Это работает, но на моем устройстве также установлен APKPure в качестве стороннего поставщика. В этом решении будет показано диалоговое окно, в котором можно решить, какое приложение магазина следует использовать для обработки намерения. Также на некоторых устройствах Huawei все еще установлены Google Play Store и Huawei App Gallery, что также может вызвать это диалоговое окно. В нашем случае это нежелательное поведение.

lilienberg 20.04.2021 11:39

так каково ваше желаемое поведение?

Adi B 20.04.2021 14:14

В нашем случае мы хотим, чтобы галерея приложений Huawei открывалась автоматически, не запрашивая у пользователя предпочтительное приложение для магазина. Типичные варианты использования - это запрос рейтинга / отзыва приложения, обновление приложения или загрузка другого приложения. Во всех случаях мы не хотим, чтобы пользователь выбирал APKPure. Прямая ссылка на другое приложение обычно работает через ссылки приложений, а не простые ссылки на контент. Схема market: //, похоже, работает как обычная глубокая ссылка.

lilienberg 22.04.2021 08:06

Затем, если вы хотите полностью пропустить диалог устранения неоднозначности, единственный способ - использовать глубокую ссылку со схемой appmarket://, как указал Пьер в принятом ответе. Для меня https-ссылки AppGallery не вели себя как ссылки приложений = у меня все еще есть диалоговое окно устранения неоднозначности (это правда, что при выборе браузера Huawei из списка приложений для обработки намерения он в конечном итоге запустит собственное приложение AppGallery на устройстве с деталями вашего приложения) - попробуйте `adb shell am start -a" android.intent.action.VIEW "-d" appgallery.huawei.com/#/app/C103639735 "`.

Adi B 12.05.2021 12:34

Я упомянул об универсальном решении, использующем схему market:// (вместо разных глубоких ссылок для каждого магазина), потому что это более удобно, когда вы кодируете приложение, которое хотите быть независимым от платформы.

Adi B 12.05.2021 12:34

Я думаю, что самым коротким и простым было бы использование этой простой ссылки: https://appgallery.cloud.huawei.com/ag/n/app/<YOUR_APP_ID>.

Не нужно ничего настраивать, остальное сделает Huawei автоматически.

Как получить YOUR_APP_ID?

  1. Перейти к Галерея приложений Huawei
  2. Найдите свое приложение (например, WeChat)
  3. Скопируйте идентификатор в конце ссылки (например, https://appgallery.huawei.com/#/app/C5683)
  4. В этом случае APP_ID для WeChat будет C5683.
  5. Таким образом, ссылка на приложение Huawei для WeChat будет https://appgallery.cloud.huawei.com/ag/n/app/C5683.

Другие вопросы по теме