1.问题定位

uniapp离线打包在gwt热更新时出现闪退和下载不了的问题是因为App找不到解压gwt的依赖包

2.核心代码

在Android Stadio主项目的 build.gradle > dependencies中增加以下依赖:

dependencies {
     implementation 'net.lingala.zip4j:zip4j:2.11.5'
}

3.uniapp热更新代码

 热更新代码加入了进度监听,不需要的话可以直接注释,更新后自动重启

const downloadWgt = (url) => {
		downloading.value = true;
		downloadedSize.value = 0;
		totalSize.value = 0;
		const dtask = plus.downloader.createDownload(url, {}, (d, status) => {
			if (status === 200) {
				plus.runtime.install(d.filename, { force: false },
					() => {
						plus.runtime.restart();
					},
					err => {
						err_name.value = err;
						$Toast('安装失败')
						downloading.value = false;
					}
				);
			} else {
				downloading.value = false;
				$Toast('下载失败')
			}
		});

		dtask.addEventListener("statechanged", task => {
			if (task.state === 3 && task.totalSize > 0) {
				totalSize.value = task.totalSize;
				downloadedSize.value = task.downloadedSize;
				percentage.value = Math.floor(task.downloadedSize / task.totalSize * 100);
			}
		});

		dtask.start();
	};
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐