在 UniApp 中,打包生成 .wgt 文件(WGT 包)用于热更新或离线资源分发。以下是详细步骤和注意事项:
打包步骤
- 打开 HBuilderX:确保使用最新版本的 HBuilderX 开发工具。
- 配置项目:
- 在
manifest.json 中检查应用版本号(用于更新校验)。
- 确认项目无编译错误。
- 生成 WGT 包:
- 顶部菜单选择 发行 → 原生 App-制作移动 App 资源升级包。
- 工具会自动编译项目并生成
.wgt 文件,输出路径在项目的 unpackage/release 目录下。
关键代码(用于热更新)
在 App 中检测并安装 WGT 包(需集成原生插件):
// 检查更新
plus.runtime.getProperty(plus.runtime.appid, (widgetInfo) => {
const version = widgetInfo.version; // 当前版本
// 从服务器获取最新版本信息(示例)
uni.request({
url: 'https://your-server.com/version.json',
success: (res) => {
if (res.data.version > version) {
this.downloadWgt(res.data.wgtUrl); // 下载 WGT 包
}
}
});
});
// 下载并安装
downloadWgt(wgtUrl) {
const downloadTask = uni.downloadFile({
url: wgtUrl,
success: (downloadResult) => {
if (downloadResult.statusCode === 200) {
plus.runtime.install(
downloadResult.tempFilePath,
{ force: true },
() => {
uni.showToast({ title: '更新完成,重启生效' });
plus.runtime.restart();
},
(error) => {
uni.showToast({ title: '安装失败', icon: 'error' });
}
);
}
}
});
}
注意事项
- 版本管理:确保
manifest.json 中的版本号高于当前版本,否则无法更新。
- 资源限制:WGT 包仅包含前端资源(JS/HTML/CSS),不支持原生插件更新。
- 安全机制:部分平台(如 iOS)对热更新有严格限制,需遵守相关政策。
- 测试建议:在真机调试模式下验证 WGT 包安装流程。
通过以上步骤,可快速生成并部署 WGT 包,实现应用资源的热更新。