我知道可以在 Google Play 商店中打开我的应用程序(基于包名称),但如何在华为 AppGallery 中打开我的应用程序?
11 回答
在华为应用程序库中打开您的应用与打开 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相同的Scheme:market://com.huawei.appmarket
我同意@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
如果您的应用已经在华为应用市场上发布,那么您可以使用该网址直接打开应用。
- 你的applcation的appid的URL,例如AppGallery的appid是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
您可以将包名称替换为您自己的包名称。
希望它可以有所帮助。
看来华为应用程序库现在可以使用适用于 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"
在华为应用商店打开应用的简单方法:
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");
通过包名启动 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());
}
}
}
您可以使用华为应用市场提供的徽章服务来推广您的应用,包括准备制作徽章的材料、配置应用链接、获取Referrer统计。通过该服务,您可以高效地统计AppGallery中的应用下载量,并为用户提供静默安装服务,提高推广效果。
当用户在频道中点击您的徽章时,用户将被重定向到您在 AppGallery 上的应用详情页面。用户可以点击安装以自动下载并安装您的应用程序。
- 制作徽章
- 登录AppGallery Connect并点击In-app distribution。
- 单击制作徽章选项卡。
- 单击添加并通过按关键字或应用 ID 搜索来添加应用。(您只能为已发布的应用制作徽章。)
- 设置徽章类型,显示徽章,频道名称和推荐人。推荐人是可选的。如果需要归因统计,则需要设置该参数。
- 单击生成徽章以获取徽章及其链接。
我认为最短和最简单的方法是运行这个简单的链接:https://appgallery.cloud.huawei.com/ag/n/app/<YOUR_APP_ID>
.
无需配置任何东西,其余的将由华为自动处理。
如何获得 YOUR_APP_ID?
- 前往华为应用库
- 搜索您的应用程序(例如微信)
- 复制链接末尾的ID(例如https://appgallery.huawei.com/#/app/C5683)
- 在这种情况下,微信的 APP_ID 将是
C5683
- 所以微信的华为应用链接是https://appgallery.cloud.huawei.com/ag/n/app/C5683
以下是直接启动 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 并使用 Intent。这里有一个类似的问题。从 Android 上的另一个应用程序启动一个应用程序
祝你无论做什么都好运