uniapp wgt热更新包的使用方法

“在uniapp中使用wgt热更新包的具体步骤是什么?需要注意哪些事项?官方文档看得不太明白,有没有更详细的教程或示例?”

2 回复

uniapp热更新wgt包使用方法:

  1. 将wgt包放到服务器
  2. 使用plus.runtime.install安装
  3. 重启应用生效

注意:iOS需配置应用更新权限,Android需开启安装未知来源应用权限。


在 UniApp 中,WGT 热更新包用于在不重新发布应用市场的情况下更新应用资源(如页面、样式、JS 等)。以下是使用方法:

步骤:

  1. 生成 WGT 包

    • 在 HBuilderX 中,选择项目 → 发行 → 制作应用 WGT 包。生成 .wgt 文件。
  2. 服务器部署

    • .wgt 文件上传到服务器,确保可通过 URL 访问(如 https://example.com/update.wgt)。
  3. 客户端检测更新

    • 在应用启动时,检查服务器版本号(如通过 API 接口对比本地版本)。
    • 若需更新,下载 WGT 包并安装。
  4. 代码实现

    • 使用 uni.downloadFile 下载 WGT 包,然后通过 uni.installWgt 安装。

示例代码(在 App.vue 或首页):

// 检查更新
checkUpdate() {
  // 假设从服务器获取最新版本信息
  const serverVersion = '2.0.0'; // 服务器返回的版本
  const localVersion = plus.runtime.version; // 当前应用版本
  
  if (serverVersion > localVersion) {
    uni.showModal({
      title: '更新提示',
      content: '发现新版本,是否下载更新?',
      success: (res) => {
        if (res.confirm) {
          this.downloadWgt('https://example.com/update.wgt');
        }
      }
    });
  }
},

// 下载并安装 WGT 包
downloadWgt(url) {
  uni.downloadFile({
    url: url,
    success: (downloadResult) => {
      if (downloadResult.statusCode === 200) {
        uni.installWgt({
          wgtPath: downloadResult.tempFilePath,
          success: () => {
            uni.showToast({ title: '更新成功,重启生效', icon: 'none' });
            // 可选:强制重启应用
            plus.runtime.restart();
          },
          fail: (err) => {
            uni.showToast({ title: '安装失败', icon: 'none' });
            console.error('WGT安装失败:', err);
          }
        });
      }
    },
    fail: (err) => {
      uni.showToast({ title: '下载失败', icon: 'none' });
      console.error('下载失败:', err);
    }
  });
}

注意事项:

  • 权限配置:在 manifest.json 中确保勾选「运行环境」→「更新」权限。
  • 版本管理:服务器需提供版本号对比逻辑(如通过接口返回最新版本号)。
  • 兼容性:WGT 更新仅适用于资源修改,不涉及原生插件变更。
  • 测试:建议在真机调试模式下测试更新流程。

通过以上步骤,即可实现 UniApp 的 WGT 热更新功能。

回到顶部