app热更新和强制更新(uniapp)

5 篇文章 2 订阅

在uniapp中热更新与强制更新

	// app升级
			uni.request({
			//检查更新的后台接口,此处为简单判断版本号是否需要更新
				url: 'xxxxxxxxxx',
				data: {
				//app类型,安卓为1,苹果为2
					appType: '1'
				},
				method: 'GET',
				success:(res) => {
					console.log(res.data.data.versionNo)
					// 版本对比
					plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {
						if (widgetInfo.version < res.data.data.versionNo) {
						
						// 状态判断  强制更新
							if (res.data.data.upgradeType == '2') {
								uni.showModal({
									title: '更新提示',
									content: '修复重大bug并新增全新功能!',
									showCancel: false,
									success: (e) => {
										if (e.confirm) {
											var wgtUrl =
												"xxxxxxx/app/TjBdPlaneApp_"+res.data.data.versionNo+".apk"; //下载文件地址(也可以从后台获取)
											uni.showLoading({
											    title: '正在更新中,请稍后..'
											});
											plus.runtime.openURL(wgtUrl);
											uni.hideLoading();
											plus.runtime.restart();
										}
									},
								})
							} else {
								// 热更新  wgt文件
								uni.showModal({
									title: '更新提示',
									content: '优化用户体验并新增全新功能!!!',
									success: (e) => {
										if (e.confirm) {
											
											var wgtUrl =
												"hxxxxxxxxxx/app/TjBdPlaneApp_"+res.data.data.versionNo+".wgt"; //下载文件地址(也可以从后台获取)
											uni.showLoading({
											    title: '正在更新中,请稍后..'
											});
											console.log(wgtUrl)
											uni.downloadFile({
												url: wgtUrl,
												success: (downloadResult) => {
													console.log(downloadResult)
													if (downloadResult.statusCode ===200) {
														plus.runtime.install(downloadResult.tempFilePath, {
																force: false
															},
															function() {
																console.log(
																	'install success...'
																	);
																plus.runtime.restart();
															},
															function(e) {
																console.error(
																	'install fail...'+e.message
																	);
															});
													}
												}
											});
											uni.hideLoading();
										}
									},
								})
							}
						}
					})
					
				},
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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 ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值