uniapp 小程序更新提示

<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

微信开发工具验证
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值