当前位置: 首页 > news >正文

uniapp的app端软件更新弹框

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

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

onLaunch: function() {let a = 0let 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:这只是样式,需要把定时器更换为监听下载进度的方法

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();

http://www.lryc.cn/news/343104.html

相关文章:

  • win11 Terminal 部分窗口美化
  • 开源go实现的iot物联网新基建平台
  • 24深圳杯ABCD成品论文47页+各小问代码+图表
  • doris经典bug
  • 贪心算法应用例题
  • 亚信科技精彩亮相2024中国移动算力网络大会,数智创新共筑“新质生产力”
  • 图像处理中的颜色空间转换
  • 网络安全之静态路由
  • Golang | Leetcode Golang题解之第74题搜索二维矩阵
  • 2023黑马头条.微服务项目.跟学笔记(五)
  • C语言 | Leetcode C语言题解之第75题颜色分类
  • 淘宝扭蛋机小程序开发:掌上惊喜,转出你的幸运宝藏
  • Oracle索引组织表与大对象平滑迁移至OceanBase的实施方案
  • 【服务治理中间件】consul介绍和基本原理
  • 无人机运营合格证:民用无人机驾驶航空器运营合格证书
  • 【编码利器 —— BaiduComate】
  • python 关键字(in)
  • 【Node.js从基础到高级运用】二十八、Node.js 内存管理浅析
  • AES加密解密
  • 通过红黑树封装 map 和 set 容器(1):红黑树的迭代器
  • mysqlbinlog恢复delete的数据
  • 传递给组件
  • 鸿蒙通用组件弹窗简介
  • [译文] 恶意代码分析:1.您记事本中的内容是什么?受感染的文本编辑器notepad++
  • Spring Boot3.x集成Disruptor4.0
  • GoEdge自建CDN工具
  • 牛客储物点的距离
  • 【C++历练之路】红黑树——map与set的封装实现
  • RDB快照是怎么实现的?
  • 智能体可靠性的革命性提升,揭秘知识工程领域的参考架构新篇章