欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > uniapp在线下载安装包更新app

uniapp在线下载安装包更新app

2024/10/24 5:17:18 来源:https://blog.csdn.net/regretTAT/article/details/141232924  浏览:    关键词:uniapp在线下载安装包更新app

首先用getSystemInfo判断平台、 再通过json文件模拟接口 判断版本号是否一致 不一致则下载服务器apk进行更新
外加网络波动导致失败重新下载更新包

 uni.getSystemInfo({success: function (e) {// #ifndef H5// 获取手机系统版本const system = e.system.toLowerCase();const platform = e.platform.toLowerCase();// 判断是否为ios设备if (platform.indexOf("ios") != -1 &&(system.indexOf("ios") != -1 || system.indexOf("macos") != -1)) {Vue.prototype.SystemPlatform = "apple";} else if (platform.indexOf("android") != -1 && system.indexOf("android") != -1) {Vue.prototype.SystemPlatform = "android";uni.request({url: "https://xxxxxxx.love/0.json", // JSON 文件地址success: (res) => {if (res.statusCode === 200) {const version = res.data.version; // 获取 版本字段if (version != "1.0.1") {uni.showModal({title: "更新提示",content: "有新的版本可用,是否立即更新?",success: (result) => {if (result.confirm) {const downloadTask = uni.downloadFile({url: "https://xxxxxxx.love/lock.apk", // 更新包地址success: (downloadResult) => {if (downloadResult.statusCode === 200) {const tempFilePath = downloadResult.tempFilePath;// 保存文件到持久目录uni.saveFile({tempFilePath: tempFilePath,success: (saveResult) => {console.log("文件保存成功,路径:",saveResult.savedFilePath);uni.openDocument({filePath: saveResult.savedFilePath,success: function (res) {console.log(res, "打开安装包");},});return;// 提示用户去文件管理器中安装uni.showModal({title: "下载完成",content:"更新包下载完成,请在文件管理器中找到并安装更新包。",showCancel: false,success: () => {uni.hideLoading(); // 隐藏进度条},});},fail: (err) => {console.error("保存文件失败", err);uni.hideLoading(); // 隐藏进度条},});}},fail: (err) => {console.error("下载失败", err);uni.hideLoading(); // 隐藏进度条},});uni.showLoading({title: "正在下载更新包",mask: true,});let lastProgress = 0;let lastUpdateTime = new Date().getTime();const updateInterval = 1500;downloadTask.onProgressUpdate((res) => {const currentTime = new Date().getTime();if (res.progress - lastProgress >= 5 ||currentTime - lastUpdateTime >= updateInterval) {lastProgress = res.progress;lastUpdateTime = currentTime;uni.showLoading({title: `下载中... ${res.progress}%`,mask: true,});}});}},});}}},fail: (err) => {console.error("请求失败", err);},});} else {Vue.prototype.SystemPlatform = "devtools";}// #endif},});

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com