位置: IT常识 - 正文

uniapp 实现app自动更新(uniapp示例)

编辑:rootadmin
uniapp 实现app自动更新

推荐整理分享uniapp 实现app自动更新(uniapp示例),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp实现app自动更新,uniapp自动化部署,uniapp自定义弹出框,uniapp 自启动,uniapp 自定义loading,uniapp 自定义loading,uniapp 自定义loading,uniapp自动化部署,内容如对您有帮助,希望把文章链接给更多的朋友!

uniapp 实现app自动更新(uniapp示例)

需求概述: 最近遇到的需求,扫码核验的app需要在线自动升级安装(因app简单上不了应用市场,所以调研用在线更新的办法)

第一步:首先需要一个可以更新和获取数据的接口(后端)

比如第一次打包时的版本名称是1.0.1,那第一次将这个1.0.1版本的手动安装到手机上后,后续想要实现自动更新,再次打包的版本名称就必须大于1.0.1(因为本次实现的逻辑就是根据版本名称) 版本号位置:manifest.json >> 基础配置 >> 应用版本名称

当需要更新app的时候,改变版本名称(必须大于上一个版本),开始打包

同时在后端的接口里同步更新你的此次打包的版本名称

第二步:打包后的apk文件需要放在服务器上,然后拿到在服务器上的文件的地址(后续有用)第三步:开始在App.vue里书写前端逻辑(直接贴代码)onLoad() : 在页面加载的时候触发,只会调用一次,在onLoad() 函数中,可以通过 option获取当前页面路径中的参数onShow(): 在页面显示时调用,也就是切换页面的时候,或者切入前台的时候触发,可以多次触发 根据自己的需求来确定是写在onShow还是onLoad

原理:获取当前app的版本名称,在onShow触发的时候调接口比对当前app版本名称和线上最新版本名称,如果线上最新版本名称大于当前版本名称则下载最新的apk安装更新

onShow: function() {console.log('App Show')plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {this.version = widgetInfo.versionuni.request({url: 'http://xxxx.cczu.edu.cn:8081/api/dict',success: (res) => {function compareVersion(version1, version2) {const newVersion1 = `${version1}`.split('.').length < 3 ? `${version1}`.concat('.0') : `${version1}`;const newVersion2 = `${version2}`.split('.').length < 3 ? `${version2}`.concat('.0') : `${version2}`; //计算版本号大小,转化大小 function toNum(a){ const c = a.toString().split('.'); const num_place = ["", "0", "00", "000", "0000"], r = num_place.reverse(); for (let i = 0; i < c.length; i++){ const len=c[i].length; c[i]=r[len]+c[i]; } return c.join(''); } // 检测版本号是否需要更新 function checkPlugin(a, b) { const numA = toNum(a); const numB = toNum(b); return numA > numB ? 1 : numA < numB ? -1 : 0; } return checkPlugin(newVersion1 ,newVersion2); } for (let i of res.data.content) { if (i.description === 'app版本') {// 1代表app新包版本号大于本地版本号 if (compareVersion(i.dictDetails[0].value, this.version) === 1) { uni.showModal({ title: '提示', content: '发现新的应用安装包,点击确定立即更新', success: function (res) { if (res.confirm) { console.log('用户点击确定');uni.showLoading({title: '更新中……'}) uni.downloadFile({ // 存放最新安装包的地址 url: 'http://xxxx.xxxx.com/__UNI__xxxx.apk', success: (downloadResult) => { uni.hideLoading(); if (downloadResult.statusCode === 200) { uni.hideLoading(); plus.runtime.install(downloadResult.tempFilePath,{ force: false }, function() { console.log('install success...'); plus.runtime.restart(); }, function(e) { uni.hideLoading(); console.error('install fail...'); }); } } }); } else if (res.cancel) { console.log('用户点击取消'); } } }); } else { } } }}});});},
本文链接地址:https://www.jiuchutong.com/zhishi/297687.html 转载请保留说明!

上一篇:基于51单片机的智能台灯设计(基于51单片机的电子秤设计)

下一篇:全网独家首发|极致版YOLOv7改进大提升(推荐)网络配置文件仅24层!更清晰更方便更快的改进YOLOv7网络模型(全网首发是什么意思)

  • 苹果13怎么开信息提醒闪光灯(苹果13怎么开信息通知)

    苹果13怎么开信息提醒闪光灯(苹果13怎么开信息通知)

  • 京东的快递怎么查询物流(京东的快递怎么这么慢)

    京东的快递怎么查询物流(京东的快递怎么这么慢)

  • 荣耀9x的屏幕刷新率是多少(荣耀9x的屏幕刷新率在哪里设置)

    荣耀9x的屏幕刷新率是多少(荣耀9x的屏幕刷新率在哪里设置)

  • 芒果悬浮窗怎么弄(芒果怎么开悬浮窗)

    芒果悬浮窗怎么弄(芒果怎么开悬浮窗)

  • soul验证码频繁多久解除(soul验证码频繁了怎么办)

    soul验证码频繁多久解除(soul验证码频繁了怎么办)

  • 苹果xs锁屏下怎么开手电筒(苹果xs锁屏怎么设置)

    苹果xs锁屏下怎么开手电筒(苹果xs锁屏怎么设置)

  • qq删除聊天记录对方还能看到吗(qq删除聊天记录怎么删)

    qq删除聊天记录对方还能看到吗(qq删除聊天记录怎么删)

  • 拼多多退款率高会影响店铺吗(拼多多退款率高吗)

    拼多多退款率高会影响店铺吗(拼多多退款率高吗)

  • 苹果手机微信删了能恢复吗(苹果手机微信删了怎么办)

    苹果手机微信删了能恢复吗(苹果手机微信删了怎么办)

  • 魅族17有红外功能吗(魅族17有红外遥控吗)

    魅族17有红外功能吗(魅族17有红外遥控吗)

  • 苹果6基带是高通的吗(iphone6s 基带)

    苹果6基带是高通的吗(iphone6s 基带)

  • 华为手机关机怎么关(华为手机关机怎么设置)

    华为手机关机怎么关(华为手机关机怎么设置)

  • 误码率怎么算(误码率怎么算公式)

    误码率怎么算(误码率怎么算公式)

  • 在internet上广泛使用的www是一种什么(在internet应用最广泛的服务)

    在internet上广泛使用的www是一种什么(在internet应用最广泛的服务)

  • 软件出现闪退是什么原因(软件出现闪退问题)

    软件出现闪退是什么原因(软件出现闪退问题)

  • 小黑盒新品什么意思(小黑盒新品什么时候上线)

    小黑盒新品什么意思(小黑盒新品什么时候上线)

  • iphone11出厂有膜吗(苹果11买回来有没有膜)

    iphone11出厂有膜吗(苹果11买回来有没有膜)

  • 华为手机有扫描功能吗(华为手机有扫描图片文本的功能吗)

    华为手机有扫描功能吗(华为手机有扫描图片文本的功能吗)

  • 华为mate20x5G能否双击亮屏

    华为mate20x5G能否双击亮屏

  • 快手直播限流怎么恢复(快手直播限流怎么回事)

    快手直播限流怎么恢复(快手直播限流怎么回事)

  • 华为手机如何唤醒小艺(华为手机如何唤醒小度)

    华为手机如何唤醒小艺(华为手机如何唤醒小度)

  • xsmax双卡在哪插(xsmax双卡双待怎么插)

    xsmax双卡在哪插(xsmax双卡双待怎么插)

  • 付款方式无效什么意思(付款方式都无效)

    付款方式无效什么意思(付款方式都无效)

  • 苏门答腊海岸正在喷发的喀拉喀托火山,印度尼西亚 (© Martin Rietze/Alamy)(苏门答腊岛海岸线多少)

    苏门答腊海岸正在喷发的喀拉喀托火山,印度尼西亚 (© Martin Rietze/Alamy)(苏门答腊岛海岸线多少)

  • 李宏毅深度学习笔记——呕心整理版(李宏毅课程)

    李宏毅深度学习笔记——呕心整理版(李宏毅课程)

  • 小规模免征增值税额度2023
  • 金蝶eas怎么用
  • 计提无形资产摊销额计入什么科目
  • 医疗服务有增值业务吗
  • 转登小规模以前的留抵税额能申请退吗
  • 一正一负发票是什么意思
  • 资产负债表上应付账款根据什么填制
  • 弱电系统多少钱
  • 怎么查纳税人信用等级
  • 个体工商户在哪注销营业执照
  • 个体工商户怎么注册
  • 总公司可以给分公司买车吗
  • 接受非货币性资产捐赠以其什么确认捐赠额
  • 广告费怎么入账
  • 增值税发票抵扣进项税什么意思
  • 教育费附加抵免政策
  • 商品进销差价是资产类账户,其抵减的账户是
  • 模具维修费用清单表格
  • 工资不到3500用交个税吗
  • 代开专票退票流程及说明
  • 地税收的其他政府基金计入科目及收益
  • 预收房租款如何入账
  • 利润调整分录
  • 税务代开的专票未取票,逾期会作废吗?
  • 如何查询发票是否验旧
  • mac打印机状态暂停怎么处理
  • linux禁用root用户
  • 其他应收款包括差旅费吗
  • 自主研发全流程
  • 映泰主板bios设置硬盘启动
  • 网页游戏无法打开
  • hpp是什么文件
  • linux中安装命令
  • php中实现文件上传的函数是什么
  • 其他债权投资按公允价值计量,为什么计提减值准备知乎
  • 公司给员工付个税怎么算
  • import vue from vue报错
  • 新政府会计制度固定资产核算
  • 关系抽取系统的要求
  • 无法将node项识别为
  • nor命令
  • phpcms怎么样
  • 增值税专票的开票要求
  • 营业外支出增加的原因
  • 房地产企业所得税计算方法
  • 应纳税所得额中国债利息收入
  • mysql的简单操作
  • 商业保险 抵扣个税
  • mysql drop from
  • sql server简单查询
  • 民间非营利组织会计制度及操作实务
  • 购买软件使用费计入什么科目
  • 进项发票还未收到可以认证吗
  • 企业因受疫情影响导致停工停产的
  • 无形资产减值准备
  • 二手市场机械设备
  • 应付账款账户怎么结转
  • 预付账款为什么不是金融资产
  • 公司工会经费怎么花不违规
  • 残保金新企业用交吗
  • 建账内容
  • sql连接查询实验报告
  • mysql服务自动停止运行
  • windows2000修改ip
  • Vista和Server08 SP2 RTM-Escrow发放给测试者
  • win10系统如何快速打开控制面板
  • win10系统预览版
  • 电脑无法使用qq
  • linux挂起
  • windows远程登录命令
  • u盘背景图片设置方法
  • win10清理系统盘垃圾
  • win7怎么运行itunes
  • opengl顶点坐标纹理坐标关系
  • base如何使用
  • jQuery webuploader分片上传大文件
  • javascript常用语句
  • 补税务登记证报税要钱吗
  • 增值税电子普通发票需要盖章吗
  • 企业所得税优惠事项管理目录2023
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设