app版本更新

文章详细描述了一个使用UniApp开发的应用中onShow函数,包括获取系统信息、检查App版本、并在版本更新时引导用户下载和重启。重点介绍了在iOS和Android平台上处理新版本更新的方法。
摘要由CSDN通过智能技术生成
onShow: function() {
			console.log(uni.getSystemInfoSync().platform);
			console.log('App Show');
	
			// #ifdef APP-PLUS
					this.copyToClip()
					// 获取系统剪贴板内容
					console.log('this.copyToClip()',this.copyToClip());
			plus.runtime.getProperty(plus.runtime.appid, (wgtInfo) => {
				let version = wgtInfo.version; //例子:获取版本号
				console.log("version: " + wgtInfo.version);
				if (wgtInfo.version) {
					this.updateApp(wgtInfo.version);
				} else {
					console.log("app版本获取失败")
				}
			});
			// #endif
		},
updateApp(version) {
			    var t = 11;
			    if (uni.getSystemInfoSync().platform === 'ios') {
			        t = 12;
			    }
			    var _this = this;
				console.log(useHost + `/noAuth/app/v1/version`);
			    uni.request({
			        url:useHost + `*****`, //请求接口 
			        method: 'POST',
			        contentType: 'application/json',
			        dataType: 'json',
			        data: JSON.stringify({ type: t, t: t, version: version }),
			        success: result => {
						   console.log(result);
			            console.log(version);
			            if (result.data.code == 200) {
			                console.log(result.data.code, result.data.data.updateType, result.data.data.version);
			                if (result.data.data.updateType < 0) {
			                    if (uni.getSystemInfoSync().platform == 'ios') {
			                        // ios
									    uni.showModal({
									        title: '发现新版本',
									        content: '确认下载更新\n' + result.data.data.intro,
									        success: res => {
									            if (res.confirm == true) {
									                //当用户确定更新,执行更新
													plus.runtime.openURL(result.data.data.downloadUrl);
									            }
									        }
									    });
			                    } else {
			                        plus.runtime.getProperty(plus.runtime.appid, function(inf) {
			                            uni.showModal({
			                                title: '发现新版本',
			                                content: '确认下载更新\n' + result.data.data.intro,
			                                success: res => {
			                                    if (res.confirm == true) {
			                                        //当用户确定更新,执行更新
			                                        _this.doUpData(result.data.data.downloadUrl);
			                                    }
			                                }
			                            });
			                        });
			                    }
			                }
			            }
			        }
			    });
doUpData(url) {
				// 安卓
				uni.showLoading({
					title: '更新中……'
				});
				uni.downloadFile({
					//执行下载
					url: url, //下载地址
					success: downloadResult => {
						//下载成功
						uni.hideLoading();
						if (downloadResult.statusCode == 200) {
							uni.showModal({
								title: '',
								content: '更新成功,确定现在重启吗?',
								confirmText: '重启',
								confirmColor: '#EE8F57',
								success: function(res) {
									if (res.confirm == true) {
										plus.runtime.install(
											//安装
											downloadResult.tempFilePath, {
												force: true
											},
											function(res) {
												utils.showToast('更新成功,重启中');
												plus.runtime.restart();
											}
										);
									}
								}
							});
						}
					}
				});
			},

在UniApp中,实现app版本更新可以通过以下步骤进行操作。首先,在关于我们的页面中应添加版本更新操作,可以通过后端加入一个字段来标识是否需要进行强制更新。如果需要强制更新,那么在进入app时就需要进行版本检测和对比,如果当前版本与最新版本不一致,则必须进行更新,否则无法使用该app。如果版本一致,则无需进行提示。这个逻辑基本与非强制更新相同。 在打包时,还需要注意两个重要的修改。首先,要修改应用版本名称,确保其在升级时高于上一次设置的版本号。其次,要修改应用版本号,确保其为一个整数,并且在升级时高于上一次设置的值,这样在更新app时需要下载最新的包才不会出现问题。 另外,UniApp还提供了一个版本更新的js文件,该文件省去了自己编写布局和进度条的麻烦。通过使用这个js文件,可以直接生成更新弹窗,并且可以配置是否进行强制更新,并且还可以看到更新的进度。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [uniapp版本更新](https://blog.csdn.net/m0_51431448/article/details/130326109)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [uni-app版本更新](https://download.csdn.net/download/weixin_44052462/13188942)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值