主题
安卓项目使用 AppUpdate 接入参考
AppUpdate 项目介绍
AppUpdate 是一个Android版本更新库,简单、轻量、可随意定制。 支持Java、Kotlin。
- github地址: https://github.com/azhon/AppUpdate
基于 AppUpdate 升级库 和 UpgradeLink 后台服务,您可以轻松实现App版本升级,无需关心后台下载的各种细节,也无需关心升级规则的实现。
接入示例
增加仓库地址,修改文件 settings.gradle
groovy
pluginManagement {
repositories {
maven { url 'https://jitpack.io' }
}
}
引入依赖
groovy
dependencies {
implementation 'io.github.azhon:appupdate:4.3.6'
implementation 'com.github.toolsetlink:upgradelink-api-android:1.0.18'
}
1.注册 UpgradeLink 账号。 登录
2.获取到 accessKey 和 secretKey。
3.创建一个URL应用,即可获取到 应用唯一标识
4.配置应用版本。
5.配置升级规则。
使用 AppUpdate 示例代码进行获取升级策略。
用 AppUpdate 示例代码 <使用自己的对话框更新> 举例:
kotlin
private fun startUpdate1() {
AlertDialog.Builder(this@MainActivity)
.setTitle(R.string.dialog_title)
.setMessage(R.string.dialog_msg)
.setPositiveButton(R.string.dialog_confirm) { _, _ ->
startUpdate2()
}.create()
.show()
}
代码引入相关类:
kotlin
import com.toolsetlink.upgradelink.api.Client;
import com.toolsetlink.upgradelink.api.models.UrlUpgradeRequest;
import com.toolsetlink.upgradelink.api.models.UrlUpgradeResponse;
修改代码:
kotlin
private fun startUpdate1() {
// 初始化 client
val accessKeyId = "mui2W50H1j-OC4xD6PgQag"
val accessKeySecret = "PEbdHFGC0uO_Pch7XWBQTMsFRxKPQAM2565eP8LJ3gc"
val client: Client = Client(accessKeyId, accessKeySecret)
// 使用 getUrlUpgrade 方法, 组装请求参数
val urlRequest = UrlUpgradeRequest(
"uJ47NPeT7qjLa1gL3sVHqw", // 应用唯一标识,上面步骤已获取到
1, // 当前应用版本,需要调整为传入当前应用的版本号
0, // 期望升级版本号,默认为0,为获取最新版本
android.os.Build.MODEL, // 设备型号
android.os.Build.DEVICE, // 设备唯一标识,可自定义生成规则,用来标识唯一设备
)
// 这里可以根据实际情况设置 urlRequest 的属性
client.getUrlUpgrade(urlRequest, object : Client.Callback<UrlUpgradeResponse> {
override fun onSuccess(result: UrlUpgradeResponse) {
// 切换到主线程显示对话框
runOnUiThread {
AlertDialog.Builder(this@MainActivity)
.setTitle(result.msg)
.setMessage(result.data.promptUpgradeContent)
.setPositiveButton(R.string.dialog_confirm) { _, _ ->
System.err.println("startUpdate2")
}
.create()
.show()
}
}
override fun onFailure(e: Exception) {
System.err.println("Url 升级失败: " + e.message)
}
})
}