12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- /**
- * 系统更新 - 后续版本更新
- **/
- import Vue from 'vue';
- // import { getappdownload } from '@/common/request/apis/h5'
- // import { checkUpdate } from '@/common/utils/app-update-check';
- export default {
- namespaced: true,
- // 储存数据
- state: {
- update: false,
- data: {},
- link: {},
- download: {
- path: null,
- start: false,
- install: false,
- progress: 0,
- totalBytesWritten: 0,
- totalBytesExpectedToWrite: 0,
- },
- task: null
- },
- // 修改数据
- mutations: {
- edit(state, {data, index}){
- state[index] = 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();
- let params = {
- os: system_info.platform //本机设备操作系统 (android || ios)
- };
- if (params.os != 'ios' && params.os != 'android') false; //如果不是安卓或ios 返回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
- },
- }
- };
|