通过 Android Billing SDK 进行应用内更新
概述
确保用户被引导回原始应用商店进行更新,对于维持一致且符合预期的用户体验至关重要。
本指南为开发者提供了使用 Android Billing SDK 有效实现应用内更新所需的基本信息和代码片段。通过准确识别应用安装程序的来源并确认其在设备上的存在,我们可以确保用户被重定向到正确的商店进行更新。此过程可保证正在更新的应用版本保留原始的计费协议和设置,从而维持用户体验中的一致性和信任。
说明
它提供了一个自动应用更新流程,以便在应用中进行简单轻松的集成,同时还提供了一个手动机制,用于实现更受控且面向开发者的流程。
接下来进入在您应用中实现应用内更新的部分,您的首要目标是实例化客户端并连接到 Billing SDK。检索到客户端后,即可使用它来执行自动或手动更新流程。
因此,实现包含 2 个步骤:
- 设置与 Android Billing SDK 的连接;
- 应用更新流程集成;
步骤 1:连接到 Android Billing SDK
为此,请遵循 Android Billing SDK - 设置与 Android Billing SDK 的连接中的文档。
步骤 2:应用更新流程集成
自动应用更新流程
此机制依赖 Android Billing SDK 完全处理应用更新,使用弹出对话框要求用户将应用更新到最新版本,并将其重定向到原始应用商店。
使用以下方法启动此流程:
private fun launchAutomaticAppUpdate(context: Context) {
if (isNewVersionAvailable()) {
billingClient.launchAppUpdateDialog(context)
}
}
private fun isNewVersionAvailable(): Boolean =
billingClient.isAppUpdateAvailable()
private void launchAutomaticAppUpdate(Context context) {
if (isNewVersionAvailable()) {
billingClient.launchAppUpdateDialog(context);
}
}
private boolean isNewVersionAvailable() {
return billingClient.isAppUpdateAvailable();
}
手动应用更新流程
此机制依赖于手动检查是否有新版本可用,并随之启动原始商店以执行应用更新。
使用以下方法启动此流程:
private fun launchManualAppUpdate(context: Context) {
if (isNewVersionAvailable()) {
// You can perform a User prompt to verify if an App Update should be done
billingClient.launchAppUpdateStore(context)
}
}
private fun isNewVersionAvailable(): Boolean =
billingClient.isAppUpdateAvailable()
private void launchManualAppUpdate(Context context) {
if (isNewVersionAvailable()) {
// You can perform a User prompt to verify if an App Update should be done
billingClient.launchAppUpdateStore(context);
}
}
private boolean isNewVersionAvailable() {
return billingClient.isAppUpdateAvailable();
}
最佳实践
在请求应用更新之前,请务必检查网络连接,否则请求将无法工作。
请妥善处理异常和错误,并根据需要提供回退选项或用户指引。