> 技术文档 > 探索:Uniapp 安卓热更新

探索:Uniapp 安卓热更新


文章目录

  • 效果
  • 快速验证是否可行
  • 实现步骤
  • 参考文章

效果

探索:Uniapp 安卓热更新

探索:Uniapp 安卓热更新


快速验证是否可行

  • 首先打包一个版本比当前安卓高的 wgt 版本,可以在首页写一些更新
    探索:Uniapp 安卓热更新

  • 然后把 wgt 资源放到服务器中,让前端拿到下载地址

  • 主要的热更新逻辑是如下的代码,看看这个是否能生效即可

const updateApp = async () => {console.log(\'updateApp:>>\') console.log(\'updateInfo:>>\', updateInfo.value); if (!updateInfo.value.wgtUrl) { uni.showToast({ title: \'更新包不存在\', icon: \'none\' }); return } updateLoading.value = true const downloadTask = uni.downloadFile({ url: updateInfo.value.wgtUrl, success: (res) => { if (res.statusCode === 200) {console.log(\'downloadTask, res\', res) updateLoading.value = false installUpdate(res.tempFilePath); } }, fail: (err) => { uni.showToast({ title: \'下载失败\', icon: \'none\' }); console.error(\'下载失败:\', err); } }); // 进度更新 downloadTask.onProgressUpdate((res) => { updateProgress.value = res.progress; });};// 安装更新const installUpdate = (tempFilePath: string) => { // #ifdef APP-PLUS plus.runtime.install( tempFilePath, { force: false }, () => { restartFlag.value = true; setTimeout(() => { plus.runtime.restart(); }, 1500); }, (err) => { uni.showToast({ title: \'安装失败\', icon: \'none\' }); console.error(\'安装失败:\', err); } ); // #endif};

实现步骤

  • wgt 的包版本要比当前安装的版本高,否则会报如下错误
{ \"code\": -1205, \"message\": \"WGT installation package manifest.json the version of the file does not match\"}

参考文章

  • https://juejin.cn/post/7511904422525321252

技巧小贴士学习法