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

  • macbook如何镜像投屏(macbook如何镜像安装vscode)

    macbook如何镜像投屏(macbook如何镜像安装vscode)

  • 苹果11视频美颜在哪调(苹果11视频美颜功能)

    苹果11视频美颜在哪调(苹果11视频美颜功能)

  • 为什么抖音作品没人浏览(为什么抖音作品一直在审核)

    为什么抖音作品没人浏览(为什么抖音作品一直在审核)

  • 电脑屏幕一闪一闪(电脑屏幕一闪一闪的是内屏坏了吗)

    电脑屏幕一闪一闪(电脑屏幕一闪一闪的是内屏坏了吗)

  • 魅族手机老是自动静音是什么原因(魅族手机老是自动安装软件怎么办)

    魅族手机老是自动静音是什么原因(魅族手机老是自动安装软件怎么办)

  • 蓝牙音箱不能微信通话(蓝牙音箱不能微信连接)

    蓝牙音箱不能微信通话(蓝牙音箱不能微信连接)

  • 华为手机怎么重新启动电话(华为手机怎么重置手机出厂设置)

    华为手机怎么重新启动电话(华为手机怎么重置手机出厂设置)

  • kindle可以做笔记吗(kindle可以做笔记本用吗)

    kindle可以做笔记吗(kindle可以做笔记本用吗)

  • 乐视x620是什么型号(乐视x622)

    乐视x620是什么型号(乐视x622)

  • 快猫为什么看得那么卡

    快猫为什么看得那么卡

  • mwn82ch a是不是国行(mwn82ch/a是什么型号)

    mwn82ch a是不是国行(mwn82ch/a是什么型号)

  • 华为mate30pro夜景模式怎么设置(华为mate30pro夜景教程)

    华为mate30pro夜景模式怎么设置(华为mate30pro夜景教程)

  • 华为P30系列的手机型号(华为p30手感觉怎么样)

    华为P30系列的手机型号(华为p30手感觉怎么样)

  • 怎么设置苹果下载不要密码(怎么设置苹果下载app需要密码)

    怎么设置苹果下载不要密码(怎么设置苹果下载app需要密码)

  • 苹果8p抬头灯怎么设置(苹果8plus抬头灯在哪里设置)

    苹果8p抬头灯怎么设置(苹果8plus抬头灯在哪里设置)

  • 华为手机如何去掉圆点(华为手机如何去除马赛克看原图)

    华为手机如何去掉圆点(华为手机如何去除马赛克看原图)

  • 齐白石的作品名称(齐白石的作品名画)

    齐白石的作品名称(齐白石的作品名画)

  • 微信怎么上传原图(微信怎么上传原视频到朋友圈)

    微信怎么上传原图(微信怎么上传原视频到朋友圈)

  • 微信拉黑的人在哪(微信拉黑的人在哪里能找到)

    微信拉黑的人在哪(微信拉黑的人在哪里能找到)

  • word图片设置透明色(word图片设置透明色不干净)

    word图片设置透明色(word图片设置透明色不干净)

  • Win7系统怎么利用ASP获取服务器IP地址?(win7步骤和详细教程)

    Win7系统怎么利用ASP获取服务器IP地址?(win7步骤和详细教程)

  • 阿卡迪亚国家公园的高丛蓝莓植物,缅因州 (© Danita Delimont/Gallo Images/Getty Images Plus)(阿卡迪亚国家公园景点)

    阿卡迪亚国家公园的高丛蓝莓植物,缅因州 (© Danita Delimont/Gallo Images/Getty Images Plus)(阿卡迪亚国家公园景点)

  • 伊斯塔帕海岸的热带斑海豚,墨西哥 (© Christian Vizl/Tandem Stills + Motion)(伊斯塔神)

    伊斯塔帕海岸的热带斑海豚,墨西哥 (© Christian Vizl/Tandem Stills + Motion)(伊斯塔神)

  • 车间停止生产时间怎么计算
  • acca b/f
  • 个人收到拆迁补偿款缴税吗
  • 基本户可以开立几个
  • 交通补贴税前扣除标准
  • 月末 存款
  • 单位发放中秋月饼价值有规定吗
  • 企业辅助生产车间
  • 旅游开发公司有什么职位
  • 营业成本利润率降低说明什么
  • 销售返利增值税按哪个税率
  • 有限公司跟股份有限公司的区别
  • 公司购买工装计入什么费用
  • 支付的票据承兑手续费计入财务费用
  • 不动产60%和40%抵扣时间
  • 出口零税率是什么意思
  • 非流动资产基金是什么意思
  • 2018新个税
  • 销售购进材料会计分录
  • 软件固定资产还是无形资产
  • 先开票还是先预约
  • 一般企业利润表格式
  • 生产企业出口需要什么手续
  • 如何阻止windows10升级到11
  • 技术服务费进项发票怎么做分录
  • win11开机后
  • linux关闭thp
  • 网速突然减慢
  • 服务器ssl证书过期怎么解决
  • 个税手续费返还要交企业所得税吗
  • 一个药厂能够生产药品的三个前提条件
  • 公司卖旧车税务处理流程
  • 工程审计需要什么条件
  • 如何选择一款适合自己家庭的凉席
  • php魔术方法的讲解与使用
  • 关于减肥的好方法
  • php splqueue
  • 每个建筑项目都有监理吗
  • 广告费和业务宣传费税前扣除基数
  • 行政单位捐赠会计分录怎么做的
  • 专用发票密码区模糊了影响报销吗
  • 2020注册谷歌账号方法
  • c++ array
  • 不发工资可以交五险一金吗
  • 买商品赠送赠品怎么做账
  • 商品流通企业物流成本的具体构成包括()
  • 出租房屋房产税计算
  • 现金零星支出大还是小
  • 开发票的盘锁了
  • 中标的费用怎么算
  • 个体户增值税减免申报明细表怎么填
  • 交易性金融资产公允价值变动怎么算
  • 小规模纳税人减按1%如何填报申报表
  • 小规模纳税人在哪里查
  • 发票与销售小票有什么区别?
  • 坏账准备计提方法一经确定不得随意变更这种做法体现了
  • 个人对企事业单位的看法
  • 会计 借方 贷方
  • 月末结转后应交税费应交增值税一般无余额
  • 公司的软件服务器设置什么意思啊
  • 其他应付款贷方表示什么意思
  • 金税盘开完发票可以直接拔掉吗?
  • 年末净利润为负数结转本年利润实例
  • win10电脑版微信字体大小怎么设置方法
  • xp系统要求
  • 为什么要淘汰相关性高的指标
  • Linux系统安全性体现在哪些方面?
  • backtrack5教程
  • win7任务栏还原到下面快捷键
  • perl 获取数据库查询结果
  • 安卓微博评论界面图片
  • Clean Empty Directories on Unity3D and Git
  • linux 进程监控
  • listview item
  • 深入理解ffmpeg pdf
  • android 设置竖屏
  • bootstrap需要学多久
  • 给个人佣金怎么避税
  • 进项税额包括哪些项目
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设