1 Star 0 Fork 0

jinhui/商城前端

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
App.vue 5.03 KB
一键复制 编辑 原始数据 按行查看 历史
@希 提交于 2025-01-02 05:33 . 强制更新及二维码
<script>
const util = require("@/utils/util.js")
const baseUrl = "http://wwa.shuanzao.com/platform-framework/api"
const systemInfo = uni.getSystemInfoSync();
export default {
globalData: {
userInfo: {
nickname: 'Hi,游客',
userName: '点击去登录',
avatar: 'https://platform-wxmall.oss-cn-beijing.aliyuncs.com/upload/20180727/150547696d798c.png'
},
token: '',
app_version: '',
app_download_url: '',
},
onLaunch: function() {
if (systemInfo.platform === 'app-plus' || systemInfo.platform === 'android') {
// 在App环境中运行
this.checkVersion()
console.log('当前是App环境');
}
},
methods:{
// 检测版本
checkVersion() {
plus.runtime.getProperty(plus.runtime.appid, (appInfo) => {
// 获取版本号
const currentVersion = appInfo.version
// 这是用来看看版本是多少的
console.log(currentVersion);
this.getVersionFn(currentVersion)
});
},
getVersion() {
let that = this;
console.log("=--------getVersion" );
return new Promise((resolve, reject) => {
// 这里进行异步操作,比如网络请求
uni.request({
url: baseUrl + '/user/getAppVersion', // 替换为实际的API地址
method: 'POST',
success: (response) => {
console.log("response = " + response);
// 请求成功,调用 resolve 并传递结果
resolve(response.data);
return response
},
fail: (error) => {
// 请求失败,调用 reject 并传递错误
reject(error);
}
});
});
},
async getVersionFn(currentVersion) {
console.log("========getVersionFn" );
// getVersion() 是项目封装的统一的后端请求接口,替换即可。
const res = await this.getVersion()
console.log(res.data);
const updateUrl = res.data.app_download_url; // 下载地址
const latestVersion = res.data.app_version// 版本号
console.log(latestVersion);
// 比较版本号,判断是否有新版本
if (this.compareVersion(currentVersion, latestVersion) < 0) {
// 提示用户更新
uni.showModal({
title: '更新提示',
content: '检测到新版本,请立即更新?',
success: (modalRes) => {
if (modalRes.confirm) {
// 用户确认更新,下载新版本
this.downloadAndInstall(updateUrl);
}
}
});
} else {
console.log('当前已是最新版本');
}
},
// 比较版本号
compareVersion(v1, v2) {
const version1 = v1.split('.').map(Number);
const version2 = v2.split('.').map(Number);
for (let i = 0; i < version1.length; i++) {
if (version1[i] < version2[i]) {
return -1;
} else if (version1[i] > version2[i]) {
return 1;
}
}
return 0;
},
// 下载并安装新版本
downloadAndInstall(url) {
var dtask = plus.downloader.createDownload(url, {},
function(d, status) {
// 下载完成
if (status == 200) {
plus.runtime.install(plus.io.convertLocalFileSystemURL(
d.filename), {}, {}, function(error) {
uni.showToast({
title: '安装失败',
duration: 1500
});
})
} else {
uni.showToast({
title: '更新失败',
duration: 1500
});
}
});
try {
console.log('开始下载');
dtask.start(); // 开启下载的任务
var prg = 0;
var showLoading = plus.nativeUI.showWaiting("正在下载"); //创建一个showWaiting对象
dtask.addEventListener('statechanged', function(
task,
status
) {
// 给下载任务设置一个监听 并根据状态 做操作
switch (task.state) {
case 1:
showLoading.setTitle("正在下载");
break;
case 2:
showLoading.setTitle("已连接到服务器");
break;
case 3:
prg = parseInt(
(parseFloat(task.downloadedSize) /
parseFloat(task.totalSize)) *
100
);
showLoading.setTitle(" 正在下载" + prg + "% ");
break;
case 4:
plus.nativeUI.closeWaiting();
//下载完成
break;
}
});
} catch (err) {
plus.nativeUI.closeWaiting();
uni.showToast({
title: '更新失败',
mask: false,
duration: 1500
});
}
}
},
onShow: function() {
},
onHide: function() {},
onError: function(err) {
//全局错误监听
// #ifdef APP-PLUS
plus.runtime.getProperty(plus.runtime.appid, widgetInfo => {
const res = uni.getSystemInfoSync();
let errMsg = `手机品牌:${res.brand};手机型号:${res.model};操作系统版本:${res.system};客户端平台:${res.platform};错误描述:${err}`;
console.log('发生错误:' + errMsg);
});
// #endif
}
};
</script>
<style>
/*每个页面公共css uParse为优化版本*/
@import './common/app.css';
/* #ifndef APP-NVUE */
@import './components/uParse/src/wxParse.css';
/* #endif */
</style>
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/jinhuiof1999/uni-shop.git
[email protected]:jinhuiof1999/uni-shop.git
jinhuiof1999
uni-shop
商城前端
shop35

搜索帮助