是否可以链接到 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 ,但这似乎与我的要求不同。
是否可以链接到 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 ,但这似乎与我的要求不同。
更新:
用户打开应用程序并需要更新,然后我们想显示一个带有按钮的弹出窗口,该按钮将用户直接带到 AppGallery,可以从那里安装最新版本。
联合运营服务提供更新应用的能力。您的应用可以调用HMS Core SDK的更新接口,查看AppGallery是否有更新版本,并弹窗询问用户是否更新应用。
开发过程:
用户触发更新检查,例如通过启动应用程序或在更新检查页面上手动执行检查。
应用调用JosApps.getAppUpdateClient来请求初始化AppUpdateClient实例。
AppUpdateClient client = JosApps.getAppUpdateClient(this);
HMS Core SDK将当前应用的AppUpdateClient实例返回给应用。
应用调用AppUpdateClient.checkAppUpdate方法来请求更新检查。
public void checkUpdate() {
AppUpdateClient client = JosApps.getAppUpdateClient(this);
client.checkAppUpdate(this, new UpdateCallBack(this));
}
HMS Core SDK在AppGallery上查询最新的应用版本信息。
AppGallery 将应用版本信息发送回 HMS Core SDK。
HMS Core SDK通过回调将检查结果发送给应用。
应用在回调结果中检查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);
}
}
}
public void checkUpdatePop(boolean forceUpdate) {
AppUpdateClient client = JosApps.getAppUpdateClient(this);
client.showUpdateDialog(this, apkUpgradeInfo, forceUpdate);
Log.i(TAG, "checkUpdatePop success");
}
HMS Core SDK为用户显示更新弹窗。
用户在更新确认页面上选择更新应用程序。
HMS Core SDK向AppGallery发送请求下载最新的应用安装包。
AppGallery 将应用包返回给HMS Core SDK。下载完成后HMS Core SDK开始安装应用。
您可以使用华为应用市场提供的徽章服务统计应用市场应用下载量,为用户提供静默安装服务。
当用户在频道中点击您的徽章时,用户将被重定向到您在 AppGallery 上的应用详情页面。用户可以点击安装以自动下载并安装您的应用程序。
制作徽章
我想您并不是要在浏览器中打开,而是通过 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>