123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- /**
- * 系统更新 - 后续版本更新
- **/
- 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
- },
- }
- };
|