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

  • 一分钟了解货币
  • 一般纳税人简易征收的适用范围
  • 营改增后企业所得税分成比例
  • 交通违章罚款可以在手机上交吗
  • 商品流通企业商品流转的核算方法有
  • 进货方的现金折扣怎么处理?
  • 收到建设方工程款怎么办
  • 行政会计账务处理
  • 固定资产计提折
  • 已认证已抵扣的发票对方要寄回吗
  • 个体户国税定额开发票60000元地税要交多少钱?
  • 免抵退税系统操作流程
  • 一般纳税人开普票税率是多少
  • 进项和销项单价的比例
  • 存货中的生产成本是指
  • 第一次申领发票可以增额吗?
  • 哪些税金计入存货成本
  • 两地取得工资个税怎么交
  • 新会计准则下建筑业会计科目设置
  • 鸿蒙大文件夹怎么设置透明度
  • 应交税费和应交税金的区别属于什么科目
  • 公转私用途最好写借款
  • 自产原材料
  • 小规模纳税人无票收入免税吗
  • 修改hosts文件的软件
  • php网页运行原理
  • PHP:xml_get_current_byte_index()的用法_XML解析器函数
  • PHP:pg_field_size()的用法_PostgreSQL函数
  • 用约当产量法怎么计算约当总产量
  • 政策性搬迁条件
  • 契税发票遗失怎么处理
  • 卷曲的蕨菜叶怎么吃
  • 一年一度的施瓦本哈尔圣诞市集,德国巴登-符腾堡州 (© sack/Getty Images Plus)
  • vue3快速入门
  • 股票收入需要交税
  • 行政单位其他应付款
  • 多交增值税计入什么科目
  • 注解@entity
  • phpcms怎么用
  • python的基本风格
  • python多线程处理excel
  • 生产车间用电的进项税额可以抵扣吗
  • 汇算清缴后发现成本多做了
  • 收到固定资产抵账账务处理
  • 未认证和未抵扣的区别
  • 计提固定资产折旧账务处理
  • 本年计算扣除限额的基数计算公式
  • 什么叫做固定资本
  • 什么叫转让财产收入
  • 装潢装修费用属于营改增
  • 直接计入当期利润吗
  • 白条可以入账吗?
  • 公司借给股东钱
  • 税费的审计
  • 为什么银行结息不加入账户
  • 出租车费用分录
  • 变卖固定资产怎么交税
  • 调整后视镜
  • c 语言 mysql
  • distinct 多个
  • windows8.
  • w10 2021年更新
  • 教你设置陌陌耳返
  • 怎么制作win7系统u盘装系统教程
  • 微软the initiative
  • win传统桌面
  • dgservice.exe是什么
  • linux安装软件可以用哪些方式
  • Linux运维工程师工作内容
  • pe,翻译
  • cocos studio
  • android如何导入文件
  • js中的原型和原型链
  • javascript中array数组对象的含义及常用方法
  • jQuery插件是什么
  • 税务稽查证据问题
  • 浙江纳税百强2020
  • 清税申报表怎么填写
  • 税务局无编制人员工资
  • 医院电子发票怎么查
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设