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

  • qq音乐怎么分享自己的歌单(qq音乐怎么分享歌单链接)

    qq音乐怎么分享自己的歌单(qq音乐怎么分享歌单链接)

  • 华为识图购物怎么关闭(华为识图购物怎么用)

    华为识图购物怎么关闭(华为识图购物怎么用)

  • 拼多多里拼小圈如何删除(拼多多里拼小圈在哪里设置)

    拼多多里拼小圈如何删除(拼多多里拼小圈在哪里设置)

  • 抖音蓝v怎么开通(抖音蓝V怎么开通子账号)

    抖音蓝v怎么开通(抖音蓝V怎么开通子账号)

  • 抖音连续发作品影响吗(抖音连续发作品会影响流量吗)

    抖音连续发作品影响吗(抖音连续发作品会影响流量吗)

  • 12寸屏幕长宽是多少(12寸屏幕长宽是多少英寸)

    12寸屏幕长宽是多少(12寸屏幕长宽是多少英寸)

  • 滴滴预约基础费什么意思(滴滴预约基础费包含在总费用内吗)

    滴滴预约基础费什么意思(滴滴预约基础费包含在总费用内吗)

  • vivomonster模式有什么用

    vivomonster模式有什么用

  • 手机卡顿闪退是哪里出现了问题(手机卡顿闪退是中病毒了吗)

    手机卡顿闪退是哪里出现了问题(手机卡顿闪退是中病毒了吗)

  • 删除应用和设置保留个人文件是什么意思(删除应用和设置但保留个人文件是删除c盘的吗)

    删除应用和设置保留个人文件是什么意思(删除应用和设置但保留个人文件是删除c盘的吗)

  • 美团外卖充值卡怎么用(美团外卖充值卡兑换)

    美团外卖充值卡怎么用(美团外卖充值卡兑换)

  • ipad不贴膜行吗(ipad不贴膜用pencil伤屏幕吗)

    ipad不贴膜行吗(ipad不贴膜用pencil伤屏幕吗)

  • ipad有一个坏点给换吗(ipad有一个坏点能接受吗)

    ipad有一个坏点给换吗(ipad有一个坏点能接受吗)

  • 网络显示edge是啥意思

    网络显示edge是啥意思

  • oppo手机的录屏功能在哪里可以找到(oppo手机的录屏怎么关闭)

    oppo手机的录屏功能在哪里可以找到(oppo手机的录屏怎么关闭)

  • ios怎么连接手柄(ios连接手柄没反应)

    ios怎么连接手柄(ios连接手柄没反应)

  • 鼠标自己抖动怎么解决(鼠标自己抖动怎么回事)

    鼠标自己抖动怎么解决(鼠标自己抖动怎么回事)

  • 华为nova5充电速度(华为nova5i充电速度慢的原因)

    华为nova5充电速度(华为nova5i充电速度慢的原因)

  • 手机怎么给照片重命名(手机怎么给照片加贴纸)

    手机怎么给照片重命名(手机怎么给照片加贴纸)

  • 高德地图可以测海拔高度吗(高德地图可以测直线距离吗)

    高德地图可以测海拔高度吗(高德地图可以测直线距离吗)

  • oppo手机还原出厂设置(oppo手机还原出厂设置后啥都没有了咋办)

    oppo手机还原出厂设置(oppo手机还原出厂设置后啥都没有了咋办)

  • 华为手机怎么拍照翻译(华为手机怎么拍试卷去答案)

    华为手机怎么拍照翻译(华为手机怎么拍试卷去答案)

  • 荣耀20和华为nova5pro对比(荣耀20和华为nova5pro哪个好)

    荣耀20和华为nova5pro对比(荣耀20和华为nova5pro哪个好)

  • oppo手机电量校准(oppo手机电量校正)

    oppo手机电量校准(oppo手机电量校正)

  • 忘记微信密码如何登录微信(忘记微信密码如何在新手机上登录)

    忘记微信密码如何登录微信(忘记微信密码如何在新手机上登录)

  • 主机风扇方向(主机风扇方向正确图)

    主机风扇方向(主机风扇方向正确图)

  • 怎么用U盘装系统(怎么u盘装系统,u盘装系统教程图解)

    怎么用U盘装系统(怎么u盘装系统,u盘装系统教程图解)

  • 增值税申报怎么填写报表
  • 一般纳税人季报怎么申报
  • 红利税是什么时候扣的
  • 手机上税票怎么开
  • 其他综合收益属于当期损益吗
  • 以前年度损益调整在借方是什么意思
  • 会计制度方法
  • 已申报个税减免什么意思
  • 小规模企业所得税多少
  • 同一控制企业合并的特征包括
  • 纳税筹划与企业决策
  • 公司广告法违规交不起罚款怎么办
  • 不动产修理领用原材料账务处理?
  • 企业报销发票都需要什么
  • 租的厂房再转租怎么开票抵扣
  • 小规模纳税人增值税政策
  • 进项和销项单价的比例
  • 分包抵扣计算
  • 销售购物卡如何开票
  • 280元航天使用费多少钱
  • 商场赠送购物券是真的吗
  • 设备安装公司如何经营
  • 投资合伙企业对公司有债务责任吗
  • 应交税费和应交税金的区别属于什么科目
  • 财政拨款收入的明细科目
  • 普通发票用记账吗
  • 怎么认定是否为党员
  • 收到的进项发票要在多久前认证
  • 包装物押金收入含税吗
  • jQuery+Ajax+PHP“喜欢”评级功能实现代码
  • php面向对象实例
  • php编程技术
  • 年度一次性计税
  • php中file
  • 贷款和应收款项应采用实际利率法,按摊余成本计量
  • php异常处理和错误处理
  • 企业缴纳职工社保比例的规定
  • 云E办接口文档
  • 检测命令
  • phpcms模块
  • 帝国cms对接小程序
  • 任何单位和个人发现洗钱活动有权向什么举报
  • 收入纳税退税
  • pandas columns排序
  • 固定资产改扩建和大修理的区别
  • 建安类企业包括哪些公司
  • 小规模纳税人批发零售税率
  • 公司收到生育津贴不给员工
  • 购买电脑固定资产折旧怎么算
  • 一般纳税人增值税怎么做账务处理
  • 外单位替本单位缴纳社保
  • 发票逾期未抵扣怎么办
  • 房产契税什么时候退税
  • 收到运输服务发票会计分录
  • 房地产企业土地价款如何入账
  • sql server数据库中的null(空值)
  • 注册表删除win7自带游戏
  • centos6.9开启ssh服务
  • win7系统运行在哪里
  • windows7 excel
  • win7系统如何创建管理员账户
  • windows安装服务器
  • win8怎么打开管理员命令提示符
  • win10系统无法运行exe文件
  • windows7的使用方法
  • linux与windows有哪些主要区别
  • unity urp 性能
  • 批处理作用
  • JS实现的base64加密、md5加密及sha1加密详解
  • android PercentRelativeLayout 支持百分比来设置控件的宽高
  • python3条件语句
  • nodejs爬取数据
  • angularjs2
  • 地盘正针的详解使用
  • 基于javascript创建导航页面
  • 企业自建旧房产怎么处理
  • 海南省地方税务局公告2017年第2号
  • 行政单位,比如什么单位
  • 无锡国税电子发票怎么开
  • 减免税备案登记表样本
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设