Как открыть Huawei AppGallery напрямую?
Я знаю, что можно открыть мое приложение (на основе имени пакета) в Google Play Store, но как это сделать в Huawei AppGallery?
12 ответов
Открытие вашего приложения в галерее приложений Huawei аналогично открытию Google Play Store:
Huawei App Gallery использует собственную схемуappmarket://
:
- Схема:
appmarket://
- Пакет:
com.huawei.appmarket
по сравнению с Google Play Store:
- Схема:
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);
}
}
Вот фрагмент кода для 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);
}
}
Я согласен с @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.
Если ваше приложение уже опубликовано в галерее приложений Huawei, вы можете использовать этот URL-адрес, чтобы напрямую открыть приложение.
- URL-адрес с appid вашего приложения, например appid AppGallery - 27162, затем можно открыть его с помощью этого URL-адреса.
https://appgallery.huawei.com/#/app/C27162
Вы можете заменить appid своим собственным appid.
- 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 v11.1.2.304 с applicationId, который существует в обоих магазинах:
adb shell am start -a "android.intent.action.VIEW" -d "market://details?id=busu.blackscreenbatterysaver"
Простой способ открыть приложение в магазине 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");
Вы можете использовать службу значков, предоставляемую HUAWEI AppGallery, для продвижения своего приложения, включая подготовку материалов для создания значка, настройку ссылки на приложение и получение статистики рефереров. С помощью службы вы можете эффективно собирать статистику по загрузкам приложений в AppGallery и предоставлять пользователям услугу автоматической установки для улучшения эффекта продвижения.
Когда пользователь нажимает ваш значок в канале, он перенаправляется на страницу сведений о вашем приложении в AppGallery. Пользователь может нажать " Установить", чтобы автоматически загрузить и установить ваше приложение.
- Изготовление значка
- Войдите в AppGallery Connect и щелкните Распространение в приложении.
- Щелкните вкладку " Создать значок ".
- Нажмите " Добавить" и добавьте приложение путем поиска по ключевому слову или идентификатору приложения. (Вы можете сделать значок только для выпущенного приложения.)
- Установите тип значка, Отображать значок в, имя канала и реферер. Реферер не является обязательным. Если требуется статистика атрибуции, необходимо установить параметр.
- Щелкните Создать значок, чтобы получить значок и ссылку на него.
Запустите 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());
}
}
}
Я думаю, что самым коротким и простым было бы запустить эту простую ссылку:https://appgallery.cloud.huawei.com/ag/n/app/<YOUR_APP_ID>
Не нужно ничего настраивать, остальное сделает Huawei автоматически.
Как получить YOUR_APP_ID?
- Перейти в галерею приложений Huawei
- Найдите свое приложение (например, WeChat)
- Скопируйте идентификатор в конце ссылки (например, https://appgallery.huawei.com/#/app/C5683)
- В этом случае APP_ID для WeChat будет
C5683
- Таким образом, ссылка на приложение Huawei для WeChat будет https://appgallery.cloud.huawei.com/ag/n/app/C5683.
Надеюсь это поможет! Наслаждайтесь ~
Что касается ссылки на страницу сведений о приложении или страницу со списком приложений в AppGallery:
• Ссылка, которую вы упомянули: здесь есть на странице приложения подробно. Huawei поддерживает страницу сведений о приложении с помощью службы значков в AppGallery. Другими словами, вы можете заменить ссылку Google ссылкой на значок Huawei. Вы можете получить подробную информацию об обслуживании бейджей здесь.
• В отношении размещения приложений в AppGallery компания Huawei не предоставила возможность всем разработчикам, кроме некоторых приглашенных разработчиков.
Надеюсь на эту помощь и дайте мне знать, если возникнут вопросы.
Я нашел более подробный обмен ссылками на приложения AppGallery, и вот ссылка .
Вот как напрямую запустить 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);
Хорошо, братан. Вы можете использовать имя пакета. com.huawei.appmarket и использовать намерение. Здесь есть похожий вопрос. Запустить приложение из другого приложения на Android
Удачи во всем, что вы делаете