位置: IT常识 - 正文

uniapp前端实现热更新(uniapp前端 django后端)

编辑:rootadmin
uniapp前端实现热更新

推荐整理分享uniapp前端实现热更新(uniapp前端 django后端),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp redirectto,uniapp开发pc页面,uniapp后端,uniapp require,uniapp开发web,uniapp redirectto,uniapp require,uniapp前端 django后端,内容如对您有帮助,希望把文章链接给更多的朋友!

思路:

1、首先,在主页或app.vue中使用plus.runtime.getProperty()获取到app的当前wgt包版本号。

2、然后,通过后端返回给你的接口里有一个版本号(需要手动去后台管理系统中上传一个wgt包,并输入这个wgt包的版本号)。

3、再之后,将这个版本号与app当前版本号进行对比,若当前版本号大于后端给你的版本号,就不升级,反之,则显示升级弹框,请用户下载升级(开发者调用下载安装api)。

4、最后,使用plus.runtime.restart()进行app重启刷新,在设置中加一个plus.runtime.getProperty()获取到版本号。

热更新所使用到的api:

uniapp前端实现热更新(uniapp前端 django后端)

1、获取app当前wgt包版本号:plus.runtime.getProperty();

2、下载:uni.downloadFile();

3、安装wgt包:plus.runtime.install();

4、重启app:plus.runtime .restart();

代码:

1、先获取app当前版本号与后端最新wgt包进行对比

//用于对比的函数duibi(version1 ,version2){ let arr1=version1.split("."); let arr2=version2.split("."); let length=Math.max(arr1.length,arr2.length); for (let i = 0; i < length; i++) { const n1 = Number(arr1[i]||0) const n2 = Number(arr2[i]||0)// 第一个版本号大 if (n1 > n2) return 1//第二个版本号大 if (n1 < n2) return 2 } return false;}//获取app当前版本号plus.runtime.getProperty(plus.runtime.appid, (widgetInfo) => {this.version = widgetInfo.version; });

注意:千万千万不要用这个(plus.runtime.version)作为判断,它获取的是当前app的安装包版本,上面的那个是获取wgt包的版本,两个不一样,plus.runtime.version始终是一个恒定的值,除非安卓整包更新。plus.runtime.version不能用做wgt热更新判断!!!

2、进行弹框询问和下载安装api调用,重启app完成热更新

if(当前通过上面的对比需要更新时){uni.showModal({title: "系统提示",content: `当前版本号为(当前版本号),邀您更新版本(最新版本号)`,success: (res) => { //用户确认更新if (res.confirm) { //使用下载api(uni.downloadFile)let uploadTask = uni.downloadFile({url: '下载地址', success: (downloadResult) => { //使用安装wgtapi(plus.runtime.install)plus.runtime.install(downloadResult.tempFilePath, {force: true},function() {uni.showModal({title: '系统提示',content: '新版本已经更新完成,需要重启应用',showCancel: false, //用户点击确认重启success: function(res) {if (res.confirm) { 调用重启api(plus.runtime.restart)plus.runtime.restart();} else if (res.cancel) {console.log('用户点击取消');}}});})}});//在这里监听用户下载进度uploadTask.onProgressUpdate((res)=>{this.pro = res.progress;console.log(this.pro);if(this.pro==100){this.isDown = false;}})}}});}

3、监听用户下载进度并优化弹框

为了使本文看起来不过于繁琐,就不单独再开一个代码块了,需要了解详情的可以进入官方文档https://uniapp.dcloud.net.cn/api/request/network-file.html#uploadfile

本文链接地址:https://www.jiuchutong.com/zhishi/300755.html 转载请保留说明!

上一篇:Web 1.0、Web 2.0 和 Web 3.0 之间的比较

下一篇:YOLO算法创新改进系列项目汇总(入门级教程指南)(yolo算法百度百科)

  • 计提印花税会计分录
  • 中级会计报名必须用ie浏览器吗
  • 固定资产计提减值后可以转回吗
  • 水利建设专项收入的税率是多少?
  • 代收水电费的账务处理
  • 出售报废固定资产属于什么收入
  • 资本化的借款利息支出计入什么科目
  • 银行利息回单怎么打印
  • 企业厂房整改应该计入什么科目?
  • 没办税务登记公示怎么办
  • 非正常损失对应的进项税额
  • 成本票和费用票分别是什么
  • 纳税人转让2016年以后的土地使用权
  • 小微企业免征增值税条件
  • 如何确定连锁店的纳税地点?
  • 历史成本重置成本属于会计是什么
  • 购入增值税税控系统专用设备为什么全额计入固定资产
  • 公益捐赠税前扣除政策
  • 购进农产品怎么做账
  • 补发住房补贴征求意见
  • 预缴税款 免申报
  • 个人到税局开具发票流程
  • 中国每年森林火灾造成的损失
  • 企业收到农产品普通发票
  • 超标的业务招待费属于什么差异
  • 呆账催讨原则是谁提出的
  • 进价销售交增值税吗
  • 常见的dump抓取方法
  • 浅谈12 条用于 Linux 的 MySQL/MariaDB 安全最佳实践
  • win7步骤和详细教程
  • 待抵扣进项税额和待认证进项税额的区别
  • 苹果手机删除的备忘录怎么恢复
  • 固定资产一次性扣除后第二年账务处理
  • pop3服务是什么
  • nlp图
  • 一个非常有用的工具用英语怎么说
  • vue打包注意事项
  • framework怎么用
  • 代缴房产税代缴的人要负责吗
  • 债权投资利息调整属于什么科目?
  • php closure类
  • php上传多文件
  • css获取id
  • vi命令模式下的常用命令有哪些?
  • elinks --dump
  • vue+ele
  • 期间费用指哪些费用
  • 所得税汇算清缴怎么操作
  • 作废的发票会统计到税额里吗
  • mongodb operator
  • 小规模没收入怎么报税
  • 会计法中单位负责人均指法定代表人
  • 建筑企业预缴税
  • 零售金银首饰是否缴纳消费税
  • 工会经费的开支必须取得发票么
  • 公司转投资是什么意思
  • 专票入账用哪一联
  • 应交税费借方余额填列资产负债表
  • 材料抵扣进项税额
  • 不用人工
  • 管理费用和财务费用期末有无余额
  • 记账凭证的分类标准
  • 留存收益和未分配利润一样吗
  • 记账凭证模板
  • MySQL数据库卸载了数据还有吗?
  • windows2008关闭ie增强
  • win10的安装目录在哪
  • gcasInstallHelper.exe是什么进程 作用是什么 gcasInstallHelper进程查询
  • win8/10功能
  • 开机需要两次
  • linux的简单使用
  • hosts文件win10
  • cocos2d-x安装
  • 如何搭建环境变量
  • react-redux用法
  • unity每秒执行一次
  • jquery获取table的tr
  • 广东省纳税信用等级
  • 美国企业所得税税率2022
  • 车辆购置税退税申请表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设