<script>
export default {
globalData: {
// username: ''
},
onLaunch() {
// 1.1.0版本之前关于http拦截器代码,已平滑移动到/common/http.interceptor.js中
// 注意,需要在/main.js中实例化Vue之后引入如下(详见文档说明):
// import httpInterceptor from '@/common/http.interceptor.js'
// Vue.use(httpInterceptor, app)
// process.env.VUE_APP_PLATFORM 为通过js判断平台名称的方法,结果分别如下:
/**
* h5,app-plus(nvue下也为app-plus),mp-weixin,mp-alipay......
*/
//
uni.addInterceptor('request', {
invoke(args) {
// request 触发前拼接 url
// 添加对应的header信息
args.header = {
'X-Auth-Token': uni.getStorageSync('token')
}
// 测试
// args.url = 'https://............'+args.url
// 正式
args.url = 'https://...........' + args.url
// appId:
console.warn(args)
},
success(args) {
// 请求成功后,修改code值为1示例
// args.data.code = 1
switch (args.statusCode) {
case 401:
uni.setStorageSync('token', '')
uni.setStorageSync('userInfo', {})
uni.redirectTo({
url: '/index'
});
break;
default:
break;
}
},
fail(err) {
console.log('interceptor-fail', err)
},
complete(res) {
console.log('interceptor-complete', res)
}
})
this.versionUpdate()
},
methods: {
//版本更新方法
versionUpdate() {
console.log(uni.canIUse('getUpdateManager'))
// 判断应用的 getUpdateManager 是否在当前版本可用
if (uni.canIUse('getUpdateManager')) {
const updateManager = uni.getUpdateManager()
// 向小程序后台请求完新版本信息
updateManager.onCheckForUpdate(function(res) {
if (res.hasUpdate) {
//小程序有新版本,静默下载新版本,新版本下载完成
updateManager.onUpdateReady(function() {
//模态弹窗(确认、取消)
uni.showModal({
title: '更新提示',
content: '小程序已发布新版本,是否重启?',
success: function(res) {
//用户点击确定
if (res.confirm) {
//当新版本下载完成,调用该方法会强制当前小程序应用上新版本并重启
updateManager.applyUpdate()
}
//用户点击取消
else if (res.cancel) {
//强制用户更新,弹出第二次弹窗
uni.showModal({
title: '提示',
content: '小程序已发布新版本,是否重启',
showCancel: false, //隐藏取消按钮
success: function(res) {
//第二次提示后,强制更新
if (res.confirm) {
// 当新版本下载完成,调用该方法会强制当前小程序应用上新版本并重启
updateManager.applyUpdate()
} else if (res.cancel) {
//重新回到版本更新提示
versionUpdate()
}
}
})
}
}
})
})
// 当新版本下载失败
updateManager.onUpdateFailed(function() {
uni.showModal({
title: '提示',
content: '请您删除当前小程序,重新打开小程序',
})
})
}
})
} else {
// 提示用户在最新版本的客户端上体验
uni.showModal({
title: '温馨提示',
content: '当前微信版本过低,可能无法使用该功能,请升级到最新版本后重试。'
})
}
}
}
}
</script>
官方地址:https://uniapp.dcloud.io/api/other/update.html#getupdatemanager
微信开发工具验证