1

是否可以链接到 AppGallery 上的应用程序列表?

在谷歌上,我们通常会这样做:

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 ,但这似乎与我的要求不同。

4

2 回答 2

1

更新:

用户打开应用程序并需要更新,然后我们想显示一个带有按钮的弹出窗口,该按钮将用户直接带到 AppGallery,可以从那里安装最新版本。

联合运营服务提供更新应用的能力。您的应用可以调用HMS Core SDK的更新接口,查看AppGallery是否有更新版本,并弹窗询问用户是否更新应用。

开发过程:

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

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

AppUpdateClient client = JosApps.getAppUpdateClient(this);
  1. HMS Core SDK将当前应用的AppUpdateClient实例返回给应用。

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

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

  2. AppGallery 将应用版本信息发送回 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向AppGallery发送请求下载最新的应用安装包。

  4. AppGallery 将应用包返回给HMS Core SDK。下载完成后HMS Core SDK开始安装应用。


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

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

制作徽章

  1. 登录 AppGallery Connect 并点击In-app distribution
  2. 单击制作徽章选项卡。
  3. 单击添加并通过按关键字或应用 ID 搜索来添加应用。(您只能为已发布的应用制作徽章。)
  4. 设置徽章类型显示徽章频道名称推荐人。推荐人是可选的。如果需要归因统计,则需要设置该参数。
  5. 单击生成徽章以获取徽章及其链接。
于 2020-11-27T02:24:24.853 回答
1

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

您可以使用market://details?id=com.example.myapp适用于 AppGallery 和 Play Store 的哪个。

来自 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>
于 2020-12-02T11:23:36.030 回答