代码拉取完成,页面将自动刷新
<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>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。