位置: 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网络模型(全网首发是什么意思)

  • 小天才电话卡盖怎么抠出来(小天才电话卡盖怎么抠出来?视屏)

    小天才电话卡盖怎么抠出来(小天才电话卡盖怎么抠出来?视屏)

  • windows11怎么把软件放到桌面上(windows11怎么把软件固定到任务栏)

    windows11怎么把软件放到桌面上(windows11怎么把软件固定到任务栏)

  • 苹果以旧换新怎么换(苹果以旧换新怎么样)

    苹果以旧换新怎么换(苹果以旧换新怎么样)

  • 为什么我的苹果id在别的地方登录(为什么我的苹果手机充电到80就不动了)

    为什么我的苹果id在别的地方登录(为什么我的苹果手机充电到80就不动了)

  • 充电器保护套会影响充电器么(充电器保护套会使充电器在充电时发热吗)

    充电器保护套会影响充电器么(充电器保护套会使充电器在充电时发热吗)

  • 钉钉匿名投票,发起人可以看谁投的吗(钉钉匿名投票真的不能查看吗)

    钉钉匿名投票,发起人可以看谁投的吗(钉钉匿名投票真的不能查看吗)

  • 腾讯会议怎么悬浮窗播放(腾讯会议怎么悬浮窗播放电脑)

    腾讯会议怎么悬浮窗播放(腾讯会议怎么悬浮窗播放电脑)

  • 麦克风和话筒什么区别(麦克风和话筒的关系)

    麦克风和话筒什么区别(麦克风和话筒的关系)

  • 华为电脑死机了怎么办(华为电脑死机了按哪个键恢复)

    华为电脑死机了怎么办(华为电脑死机了按哪个键恢复)

  • 闲鱼发布成功但被删除(闲鱼发布成功但是在审核状态)

    闲鱼发布成功但被删除(闲鱼发布成功但是在审核状态)

  • 华为手机为什么不能安装软件了(华为手机为什么变成黑白屏了)

    华为手机为什么不能安装软件了(华为手机为什么变成黑白屏了)

  • 什么是固态硬盘和机械硬盘(什么是固态硬盘价格)

    什么是固态硬盘和机械硬盘(什么是固态硬盘价格)

  • 小爱音箱可以车上用吗(小爱音箱车载电源线)

    小爱音箱可以车上用吗(小爱音箱车载电源线)

  • 计算机硬件有哪5部分组成(计算机硬件有哪五部分)

    计算机硬件有哪5部分组成(计算机硬件有哪五部分)

  • airpods2代真假辨别(airpods2代细节真假)

    airpods2代真假辨别(airpods2代细节真假)

  • 抖音直播人数怎么看(抖音直播人数怎么刷)

    抖音直播人数怎么看(抖音直播人数怎么刷)

  • 联通3mbps是什么意思(3mbps是多少网速)

    联通3mbps是什么意思(3mbps是多少网速)

  • 移动4ghd收费吗(4ghd收费吗用流量多吗)

    移动4ghd收费吗(4ghd收费吗用流量多吗)

  • 如何永久注销微信账号(如何永久注销微软microsoft 账户)

    如何永久注销微信账号(如何永久注销微软microsoft 账户)

  • word简历模板在哪(word简历模板在哪里免费)

    word简历模板在哪(word简历模板在哪里免费)

  • 小米9指纹常亮怎么关(小米9长按指纹)

    小米9指纹常亮怎么关(小米9长按指纹)

  • 华为led灯怎么设置(华为手机的led灯在哪里)

    华为led灯怎么设置(华为手机的led灯在哪里)

  • 所得税费用为负数
  • 企业所得税是含税价还是不含税价
  • 分期付款发票开具
  • 公司雇佣退休人员怎样扣个税
  • 0税率开票如何做账
  • 软件工程质保金
  • 网上缴税后会有发票吗
  • 业务招待费如何调增调减
  • 确认以前年度收入怎么做账
  • 银行汇兑计入哪个会计科目?
  • 企业注销后资产如何处置
  • 个人股权转让是否先分红
  • 企业向职工发放的奖金属于
  • 信用卡消费凭证
  • 税务登记五证合一是哪五证
  • 结转成本计算方法
  • 外币报表折算差额怎么算
  • 产品研发费用计入什么科目
  • 分期开发是什么意思
  • 专票地址不对可以重开吗
  • 外经证作废流程
  • 继续教育专项附加扣除需要什么材料
  • 幼儿园开发成本
  • 已经上传的红字怎么修改
  • 出售固定资产增值税税率最新2022
  • 盘盈的资产
  • 上年度第四季度总结
  • 给实习生发放工资怎么纳税?
  • PHP:Memcached::quit()的用法_Memcached类
  • 高薪技术企业研发项目合同范本最新
  • oawrapper.exe是什么
  • 海带下载
  • 固定资产的使用寿命超过一个会计年度
  • 公司与公司的往来款清帐需要交税吗
  • thinkphp自定义标签
  • chat form
  • 企业和银行未达账项
  • idea如何导入sql文件
  • 浅析中国式现代化的理论价值与现实意义
  • @enable
  • linux用mv文件移动指定文件
  • 小规模工程服务开票几个点
  • 织梦自定义字段
  • mongodb $nin
  • 织梦怎么建站
  • discuz设置门户
  • 如何查询以前申请的新西兰签证记录
  • 甲企业持有乙企业股票的市价为920000
  • 现金股利和现金利润的区别
  • PostgreSQL教程(九):事物隔离介绍
  • Debian中PostgreSQL数据库安装配置实例
  • 一人有限公司和个人独资企业区别
  • 季度缴纳企业所得税可以弥补亏损吗
  • 免增值税进项税怎么弄
  • 应交税费借方余额填列资产负债表
  • 赊销是什么意思 视频
  • 残保金什么时候截止
  • mysql mod
  • vista win10
  • auepuc.exe是什么软件
  • centos7权限
  • centos5.8服务器
  • windows7压缩文件图标
  • h5 nodejs
  • perl怎么把字符串变为数字
  • python操作微信自动发消息
  • unity3d模型怎么制作
  • jquery自定义的方法有哪些
  • 增强现实的三个特征
  • JavaScript中的数据类型分为两大类
  • unity鼠标移动控制角色旋转
  • javascript模板
  • js如何实现单例模式
  • JavaScript中iframe实现局部刷新的几种方法汇总
  • Genymotion首次运行程序出现错误Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
  • android 获取手机屏幕截图
  • 软件开发交流平台
  • 企业所得税法中所称有关的支出是指
  • 公司购买车辆是什么费用
  • 律师属于什么工作单位
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设