/** * 系统更新 - 后续版本更新 **/ import Vue from 'vue'; import { selectVersion } from '@/common/request/apis/index' // import { getappdownload } from '@/common/request/apis/h5' // import { checkUpdate } from '@/common/utils/app-update-check'; export default { namespaced: true, // 储存数据 state: { update: uni.getStorageSync("update") || false, data: {}, link: {}, download: { path: null, start: false, install: false, progress: 0, totalBytesWritten: 0, totalBytesExpectedToWrite: 0, }, task: null, isUpdate:false }, // 修改数据 mutations: { edit(state, {data, index}){ state[index] = data; }, // 检查更新 setUpdate(state, data) { state.update = data; uni.setStorageSync('update', data); }, }, actions: { async update({commit, dispatch}, type) { // #ifdef MP const mp = uni.getUpdateManager(); // 请求完新版本信息的回调 mp.onCheckForUpdate((res) => { console.log(res.hasUpdate) if (!res.hasUpdate&&type) uni.$u.toast('已是最新版本,无需更新!') }); mp.onUpdateReady((res) => { // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启 uni.showModal({ title: '更新提示', content: '新版本已经准备好,是否重启应用?', success(show) { if (show.confirm) { mp.applyUpdate(); } } }); }); mp.onUpdateFailed((res) => { console.log('新的版本下载失败') }); // #endif // #ifdef APP-PLUS const system_info = uni.getSystemInfoSync(); console.log(system_info,'system') console.log(system_info.appVersion,'appVersion') let params = { os: system_info.platform //本机设备操作系统 (android || ios) }; if (params.os != 'ios' && params.os != 'android') false; //如果不是安卓或ios 返回false selectVersion() .then(res=>{ if(system_info.appVersion != res.data.version) { commit('setUpdate',true) console.log(state.update,'res') }else { commit('setUpdate',false) } }) //这里自行请求API获取版本信息 建议传入操作系统标识,返回本机对应的操作系统最新版本信息,也就是安卓的返回就是安卓的版本信息 ios返回就是ios的版本信息 // getappdownload() // .then(res => { // let versionInfo = res.data.version; // if (versionInfo&&versionInfo.downloadurl) { // let update_info = { // version: params.os == 'ios' ? versionInfo.newversion : versionInfo.newversion, //线上版本 // now_url: params.os == 'ios' ? versionInfo.downloadurl : versionInfo.downloadurl, //更新链接 // silent: versionInfo.silent ? versionInfo.silent : 0, //是否是静默更新 // force: versionInfo.enforce, //是否是强制更新 // net_check: versionInfo.net_check ? versionInfo.net_check : 1, //非WIfi是否提示 // note: versionInfo.content //更新内容 // }; // checkUpdate(update_info, type).then(res => { // if (res.msg) { // if(type){ // uni.$u.toast(res.msg) // } // } // }); ///检查更新 // } // //checkUpdate 这个方法会做什么?:线上版本号 与 本地版本号做对比 ,如果需要更新 根据静默,强制、wifi等信息执行静默更新或跳转到升级页面 // //跳转升级页面的前提是,需要新建并在pages.json中配置升级页面,配置方法请查看插件详情 // }) // .catch(err => { // uni.$u.toast(err.msg); // }); // #endif }, } };