在 UniApp 中,WGT 热更新包用于在不重新发布应用市场的情况下更新应用资源(如页面、样式、JS 等)。以下是使用方法:
步骤:
-
生成 WGT 包:
- 在 HBuilderX 中,选择项目 → 发行 → 制作应用 WGT 包。生成
.wgt 文件。
-
服务器部署:
- 将
.wgt 文件上传到服务器,确保可通过 URL 访问(如 https://example.com/update.wgt)。
-
客户端检测更新:
- 在应用启动时,检查服务器版本号(如通过 API 接口对比本地版本)。
- 若需更新,下载 WGT 包并安装。
-
代码实现:
- 使用
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 热更新功能。