位置: 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算法百度百科)

  • vivos6有提示灯吗(vivos7有提示灯吗)

    vivos6有提示灯吗(vivos7有提示灯吗)

  • 华为mate30pro摄像头是徕卡的吗(华为mate30pro摄像头玻璃破碎多少钱)

    华为mate30pro摄像头是徕卡的吗(华为mate30pro摄像头玻璃破碎多少钱)

  • 电脑如何切换屏幕(电脑如何切换屏幕键盘)

    电脑如何切换屏幕(电脑如何切换屏幕键盘)

  • p40 pro pro+区别(p40 pro和pro+的区别)

    p40 pro pro+区别(p40 pro和pro+的区别)

  • 充电宝能充笔记本电脑吗(充电宝能充笔记本买)

    充电宝能充笔记本电脑吗(充电宝能充笔记本买)

  • 抖音移除粉丝还能再关注吗(抖音移除粉丝还能发私信吗)

    抖音移除粉丝还能再关注吗(抖音移除粉丝还能发私信吗)

  • word中如何删除空白页(word中如何删除一整页)

    word中如何删除空白页(word中如何删除一整页)

  • 华为白色圆点怎么关掉(华为 白色圆点)

    华为白色圆点怎么关掉(华为 白色圆点)

  • 6s听筒声音小要修吗

    6s听筒声音小要修吗

  • 橙v和黄v有什么区别(橙v和黄v有什么关系)

    橙v和黄v有什么区别(橙v和黄v有什么关系)

  • 为什么插耳机进去却不能用(为什么插耳机进去却没有声音)

    为什么插耳机进去却不能用(为什么插耳机进去却没有声音)

  • qq加好友要发短信验证是怎么回事(qq加好友要发短信多久能解除)

    qq加好友要发短信验证是怎么回事(qq加好友要发短信多久能解除)

  • 苹果双卡可以同时接收电话嘛(苹果手机双卡可以一起用吗)

    苹果双卡可以同时接收电话嘛(苹果手机双卡可以一起用吗)

  • 荣耀v30pro防水防尘不(荣耀v30por防水级别)

    荣耀v30pro防水防尘不(荣耀v30por防水级别)

  • 华为trt_al00a什么型号(华为trt-al00a)

    华为trt_al00a什么型号(华为trt-al00a)

  • 三星s8备忘录在哪里找出来(三星s8备忘录怎么找)

    三星s8备忘录在哪里找出来(三星s8备忘录怎么找)

  • ps如何去除脸上的斑点(ps如何去除脸上的油光)

    ps如何去除脸上的斑点(ps如何去除脸上的油光)

  • 苹果手表4代可以插卡吗(苹果手表4代可以发微信吗)

    苹果手表4代可以插卡吗(苹果手表4代可以发微信吗)

  • 一个手机号可以绑定两个qq吗(一个手机号可以登录两个微信吗)

    一个手机号可以绑定两个qq吗(一个手机号可以登录两个微信吗)

  • 快手一秒变身怎么弄(快手变身视频)

    快手一秒变身怎么弄(快手变身视频)

  • 汇图网如何免费下载(汇图网如何免费下载文件)

    汇图网如何免费下载(汇图网如何免费下载文件)

  • 穿越火线封号查询以及解除封号的方法是什么?(穿越火线封号查询官网)

    穿越火线封号查询以及解除封号的方法是什么?(穿越火线封号查询官网)

  • Vue3 中 createWebHistory 和 createWebHashHistory 的区别

    Vue3 中 createWebHistory 和 createWebHashHistory 的区别

  • 数学建模——熵权法步骤及程序详解(数学建模赋权)

    数学建模——熵权法步骤及程序详解(数学建模赋权)

  • 原材料的采购成本包括运费吗
  • 工伤保险应该计入什么科目
  • 所得税季报中营业外收入填哪里
  • 进项和销项税额需要结转吗
  • 网银盾属于什么费用
  • 企业年报社保都是0人的公司
  • 2020劳务退税怎么退
  • 折旧方法改变属于会计政策变更还是估计变更
  • 过路费发票可以抵扣增值税吗
  • 拆除固定资产的补偿款
  • 支出没有发票怎么做账
  • 企业作为股东分红上税吗怎么算
  • 购买方开具红字信息表流程
  • 水电费差价收入计算增值税公式是怎样的?
  • 个人投资收益要交所得税吗
  • 虚开增值税发票具体操作是怎样的?
  • 小规模季度不超过多少不用交税
  • 前期认证相符且本期申报抵扣怎么填
  • 实收资本里的钱怎么做账
  • 优惠购房差价收益是否缴纳个人所得税?
  • 红字冲回怎么做账
  • 劳务人员奖金如何纳税
  • 股权质押权如何实现
  • 海关增值税发票双抬头
  • 库存商品过期报损
  • 鸿蒙系统怎么开发
  • biospwds最新版
  • 研发费用的归集范围
  • 营业外支出所得税前可以扣除吗
  • 资源管理器被关闭了怎么恢复
  • 文件上传之后返回一个文件路径怎么设置
  • PHP isset()与empty()的使用区别详解
  • 扣除发票
  • 微信小程序分成比例
  • 企业 土地增值税
  • thinkphp3.2框架
  • 总公司下的分公司如何做账
  • 查补的增值税账务处理
  • 经济独立可以做什么
  • 应交税费月末要结平
  • 银行对账单冲正的单据在财务软件哪里找
  • 工资只计提没有发放需要申报个税吗
  • 农产品增值税免税备案资料
  • 会计凭证的保管期限什么时候调整的
  • 新办企业装修会计分录
  • 发票金额是含税价还是不含税价
  • 安装sql server 2008提示重新启动计算机
  • 农产品收购发票可以不抵扣吗
  • 公关费用计入什么科目比较好
  • 独立核算分公司与总公司的账务处理
  • 将自产的产品用于非应税项目
  • 公司代扣代缴社保什么意思
  • 发票限额如何限定
  • 员工预支工资属于什么科目
  • 平均增长率计算公式怎么算
  • 没有认证的进项发票可以做成本吗
  • linux下apache、mysql、php安装配置详细笔记
  • window service2008r2激活
  • bios如何进去
  • linux中的查找命令
  • PHPMyAdmin 2.7.0-pl1下载
  • win7系统怎么访问共享文件
  • linux系统的安装步骤
  • apk防止反编译
  • javascript解决了什么问题
  • linux系统监控脚本
  • Git 创建分支提交远程分支详解
  • nodejs 获取命令行参数
  • vuecli脚手架是干什么的
  • ssh远程登录脚本
  • js实现自动定时功能
  • 使用jquery
  • 手机关卡类游戏
  • js的iframe
  • jquery 获取html
  • python sco
  • javascript基础
  • 重庆电子税务局网页版登录
  • 北京税务局网站官网
  • 江苏税务如何绑定多家企业账户
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设