uniapp的app端软件更新弹框

1:使用html PLUS实现:地址HTML5+ API Reference (html5plus.org),效果图

2:在app.vue的onLaunch生命周期中,代码如下:

javascript 复制代码
onLaunch: function() {
			
			let a = 0
			let view = new plus.nativeObj.View('maskView', {
				backgroundColor: "rgba(0,0,0,.6)",
				left: ((plus.screen.resolutionWidth / 2) - 150) + "px",
				bottom: ((plus.screen.resolutionHeight / 2) - 100) + "px",
				width: "300px",
				height: "200px",
				radius: "15px"
			})
			view.drawText('APP新版本更新', {
				top: '-80px',
				left: '0px'
			}, {
				size: '26px',
				color: '#FFFFFF'
			});
			//更新消息格式化
			var richText =
				'<font color = "#FF0000" style = "font-size:20px;"> 1:更新了11111。</font><br/><font color = "#FF0000" style = "font-size:20px;"> 2:更新了222。</font>';
			// let richText1 = richText.replace(/。/g, '。<br/>')
			view.drawRichText(richText, {
				top: '40px',
				left: '50px',
				width: '100%',
				height: 'wrap_content',
			})

			view.drawText('下载进度:0%', {
				top: '40px',
				left: '0px'
			}, {
				size: '18px',
				color: '#FFFFFF'
			}, 'xzjd');
			view.drawRect({
				color: '#6a8aff',
				radius: '10px'
			}, {
				bottom: '30px',
				width: '100%',
				height: '20px',
			});
			view.drawRect({
				radius: '10px',
				color: '#55ff00'
			}, {
				bottom: '30px',
				width: 0 + '%',
				height: '20px',
			}, 'jdt');
			view.show()
			let b = setInterval(() => {//根据自己需要,把这个定时器更换为监听下载进度的方法,以下代码介绍
				a++
				view.drawRect({
					color: '#55ff00',
					radius: '10px'
				}, {
					bottom: '30px',
					width: a + '%',
					height: '20px',
				}, 'jdt');
				view.drawText('下载进度:' + a + '%', {
					top: '40px',
					left: '0px'
				}, {
					size: '18px',
					color: '#FFFFFF'
				}, 'xzjd');
				if (a >= 100) {
					clearInterval(b)
					view.drawText('已完成', {
						top: '40px',
						left: '0px'
					}, {
						size: '20px',
						color: '#FFFFFF'
					}, 'xzjd');
				}
			}, 300)

			console.log('App Launch')
		}

3:这只是样式,需要把定时器更换为监听下载进度的方法

javascript 复制代码
var dtask = plus.downloader.createDownload(//下载事件,有一个返回值
	downUrl, {
	    filename: "_downloads/"
	},
	function(d, status) {
	// 下载完成
	if (status == 200) {
		plus.runtime.install(d.filename, {
		force: true
		}, function() {
			//进行重新启动;
		plus.runtime.restart();
	}, (e) => {
		    uni.showToast({
		        title: '安装升级包失败:' +JSON.stringify(e),icon: 'none'
		    })
		});
	} else {
			http.hint("下载升级包失败,请联系管理员,错误码: " +status)
	}
});
dtask.addEventListener("statechanged", (e) => {
	if (e && e.downloadedSize > 0) {
		let jindu = ((e.downloadedSize / e.totalSize) * 100).toFixed(2)
		///把上面定时器的代码放进来,a替换成jindu变量
	}
}, false);
dtask.start();
相关推荐
玖月晴空19 小时前
Uniapp 速查文档
前端·微信小程序·uni-app
2501_9159184120 小时前
App 上架苹果商店全流程详解 从开发者账号申请到开心上架(Appuploader)跨平台免 Mac 上传实战指南
macos·ios·小程序·uni-app·objective-c·cocoa·iphone
2501_916007471 天前
从零开始学习iOS App开发:Xcode、Swift和发布到App Store完整教程
android·学习·ios·小程序·uni-app·iphone·xcode
2501_916008891 天前
前端工具全景实战指南,从开发到调试的效率闭环
android·前端·小程序·https·uni-app·iphone·webview
一路向前的月光1 天前
uniapp(5)滚动列表scroll-view
前端·javascript·uni-app
2501_915921431 天前
iOS 26 CPU 使用率监控策略 多工具协同构建性能探索体系
android·ios·小程序·https·uni-app·iphone·webview
游戏开发爱好者81 天前
iOS 应用逆向对抗手段,多工具组合实战(iOS 逆向防护/IPA 混淆/无源码加固/Ipa Guard CLI 实操)
android·ios·小程序·https·uni-app·iphone·webview
00后程序员张1 天前
iOS 文件管理与导出实战,多工具协同打造高效数据访问与调试体系
android·macos·ios·小程序·uni-app·cocoa·iphone
shykevin1 天前
uni-app x开发商城系统,联系我们,地图显示,拨打电话
uni-app
爱喝水的小周2 天前
《UniApp 页面配置文件pages.json》
前端·uni-app·json