华为应用市场:链接到商品详情中的应用

Huawei AppGallery: Linking to an app in the store listing

是否有可能 link 到 AppGallery 上的应用程序列表?

在 google 我们通常会这样做:

http://play.google.com/store/apps/details?id=com.example.myapp

我找到了这个页面:https://developer.huawei.com/consumer/en/doc/development/AppGallery-connect-Guides/agc-applinking-createlinks-byagc,但这似乎和我问的不一样。

更新:

the user opens the app and an update is required, then we would like to show a popup with a button that would take the user directly to AppGallery, from where the newest version can be installed.

Joint operations services provides the capability of Updating an App。您的应用可以调用HMS Core SDK的更新API查看应用市场是否有更新版本,并弹窗询问用户是否更新应用

开发过程:

  1. 用户触发更新检查,例如,通过启动应用程序或在更新检查页面上手动执行检查。

  2. 应用调用JosApps.getAppUpdateClient请求初始化AppUpdateClient实例。

AppUpdateClient client = JosApps.getAppUpdateClient(this);
  1. HMS Core SDK returnsAppUpdateClient当前应用实例

  2. 应用调用AppUpdateClient.checkAppUpdate方法请求更新检查。

public void checkUpdate() {
    AppUpdateClient client = JosApps.getAppUpdateClient(this);
    client.checkAppUpdate(this, new UpdateCallBack(this));
}
  1. HMS Core SDK在应用市场查询最新应用版本信息

  2. 应用市场将应用版本信息回传给HMS Core SDK

  3. HMS Core SDK将校验结果通过回调方式发送给应用

  4. 应用在回调结果中检查onUpdateInfo方法返回的ApkUpgradeInfo实例,检查是否有更新。

private static class UpdateCallBack implements CheckUpdateCallBack {
    private ManinActivity apiActivity;
    private UpdateCallBack(GameApiActivity apiActivity) {
        this.apiActivity = apiActivity;
    }
    public void onUpdateInfo(Intent intent) {
        if (intent != null) {
            // Obtain the update status code. Default_value indicates the default return code when status cannot be obtained, which is determined by the app.
            int status = intent.getIntExtra(UpdateKey.STATUS, DEFAULT_VALUE);
            // Error code. You are advised to record it.
            int rtnCode = intent.getIntExtra(UpdateKey.FAIL_CODE, DEFAULT_VALUE);
             // Failure information. You are advised to record it.
            String rtnMessage = intent.getStringExtra(UpdateKey.FAIL_REASON);
            Serializable info = intent.getSerializableExtra(UpdateKey.INFO);
            // Check whether the app has an update by checking whether info obtained is of the ApkUpgradeInfo type.
            if (info instanceof ApkUpgradeInfo) {
                // Call the showUpdateDialog API to display the update pop-up. The demo has an independent button for displaying the pop-up. Therefore, this API is not called here. For details, please refer to the checkUpdatePop() method.
                apiActivity.showLog("There is a new update");
                apiActivity.apkUpgradeInfo = (ApkUpgradeInfo) info;
            }
            apiActivity.showLog("onUpdateInfo status: " + status + ", rtnCode: " + rtnCode + ", rtnMessage: " + rtnMessage);
        }
    }
}
  1. 应用调用AppUpdateClient.showUpdateDialog方法请求为用户显示更新弹窗。
public void checkUpdatePop(boolean forceUpdate) {
    AppUpdateClient client = JosApps.getAppUpdateClient(this);
    client.showUpdateDialog(this, apkUpgradeInfo, forceUpdate);
    Log.i(TAG, "checkUpdatePop success");
}
  1. HMS Core SDK为用户弹窗更新

  2. 用户在更新确认页面选择更新应用

  3. HMS Core SDK向应用市场请求下载最新的应用安装包

  4. 应用市场returns应用打包到HMS Core SDK。下载完成后HMS Core SDK开始安装应用


您可以使用华为应用市场提供的the badge service统计应用市场应用下载量,为用户提供静默安装服务。

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

制作徽章

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

我想您并不是要在浏览器中打开,而是通过 AppGallery 做出反应的意图。

您可以使用适用于 AppGallery 和 Play 商店的 market://details?id=com.example.myapp

来自 AppGallery 的 AndroidManifest.xml:

<intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:scheme="market" android:host="details"/>
</intent-filter>