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

  • 4G显存对应多少VRAM(4g显存配多少内存)

    4G显存对应多少VRAM(4g显存配多少内存)

  • oppo手机怎么设置短信拦截(oppo手机怎么设置下面三个按键)

    oppo手机怎么设置短信拦截(oppo手机怎么设置下面三个按键)

  • 笔记本重命名快捷键(笔记本重命名快捷键ctrl加什么)

    笔记本重命名快捷键(笔记本重命名快捷键ctrl加什么)

  • 笔记本电脑可不可以外接摄像头(笔记本电脑可不可以托运)

    笔记本电脑可不可以外接摄像头(笔记本电脑可不可以托运)

  • 拼多多隐形降权恢复期(拼多多隐形降权一般屏蔽多久)

    拼多多隐形降权恢复期(拼多多隐形降权一般屏蔽多久)

  • 快手怎么发图片集(怎么在快手发送图片)

    快手怎么发图片集(怎么在快手发送图片)

  • 充电宝充电对手机电池有损害吗(充电宝充电对手机有影响吗)

    充电宝充电对手机电池有损害吗(充电宝充电对手机有影响吗)

  • 5g双模手机有哪些(5g双模手机与5g手机的区别)

    5g双模手机有哪些(5g双模手机与5g手机的区别)

  • 苹果不越狱怎么下载安卓游戏(苹果不越狱怎么用kuaidial)

    苹果不越狱怎么下载安卓游戏(苹果不越狱怎么用kuaidial)

  • 淘宝ld指的是什么(淘宝ld指的是账号吗)

    淘宝ld指的是什么(淘宝ld指的是账号吗)

  • 网速慢是什么原因(网速慢是什么原因手机)

    网速慢是什么原因(网速慢是什么原因手机)

  • vivoy93语音助手怎么开启(vivoy93语音助手怎么打开)

    vivoy93语音助手怎么开启(vivoy93语音助手怎么打开)

  • 华为mate30pro隔空投送怎么用(华为mate30Pro隔空操作)

    华为mate30pro隔空投送怎么用(华为mate30Pro隔空操作)

  • 手机hd是什么意思啊收费吗(oppo手机hd是什么意思)

    手机hd是什么意思啊收费吗(oppo手机hd是什么意思)

  • ios微信如何横屏模式(ios微信横屏显示)

    ios微信如何横屏模式(ios微信横屏显示)

  • 前程无忧可以注销吗(前程无忧可以注册吗)

    前程无忧可以注销吗(前程无忧可以注册吗)

  • 荣耀v20后面几个摄像头(荣耀v20后面几个孔)

    荣耀v20后面几个摄像头(荣耀v20后面几个孔)

  • 平衡车可以安装双电池组吗(平衡车可以安装电瓶吗?)

    平衡车可以安装双电池组吗(平衡车可以安装电瓶吗?)

  • 苹果账户在app和itunes中被禁用(苹果账户在app和itunes中被锁定怎么办)

    苹果账户在app和itunes中被禁用(苹果账户在app和itunes中被锁定怎么办)

  • 荣耀dukal20是什么型号(荣耀duk al20)

    荣耀dukal20是什么型号(荣耀duk al20)

  • oppo手机微信铃声在哪里设置(oppo手机微信铃声大小怎么调)

    oppo手机微信铃声在哪里设置(oppo手机微信铃声大小怎么调)

  • 苹果为什么下载不了最右(苹果为什么下载的软件不在桌面上显示)

    苹果为什么下载不了最右(苹果为什么下载的软件不在桌面上显示)

  • php使用array_diff去除元素(php使用while循环计算1到100的和)

    php使用array_diff去除元素(php使用while循环计算1到100的和)

  • 建筑公司收到预付款怎么开票
  • 企业银行流水可以同步到T+软件中,自动生成凭证了
  • 物业费的税金是否向业主收取
  • 费用发票跨月可以入帐吗
  • 公司茶水间有什么
  • 发票认证延期抵扣啥意思
  • 进项抵扣怎么操作
  • 利息收入红冲怎么做
  • 进项转出后还能转入吗
  • 营改增后场地租赁税率
  • 公务用车用油
  • 建筑企业使用民工的税务风险你清楚吗?
  • 财务报表季度申报资产负债表怎么填
  • 一般纳税人附加税费减免政策
  • 建筑业预缴税款怎么退税
  • 公司变更税务处理?
  • 企业所得税以前年度亏损怎么弥补
  • 清算资本公积中的股本溢价应该怎么处理
  • 民间非营利组织会计报表
  • 留抵税额算进项税额吗
  • Win10 20H2 KB5001391补丁包更新内容汇总
  • 公司委托第三方缴纳社保合法吗
  • uniapp小程序自定义tabbar在iOS手机上太高了
  • ue4 像素流并发
  • 公寓收费标准
  • scrfs.exe - scrfs是什么进程 有什么用
  • msp 什么意思
  • 发票真伪查询的金额填多少
  • ISBMgr.exe - ISBMgr是什么进程 有什么作用
  • php中的die
  • gnaupdaemon.exe是什么
  • 应交增值税视频讲解
  • 工程项目成本预算表
  • PHP实现中国公民身份证号码有效性验证示例代码
  • 商场代收款发票图片
  • 纳税人数字签名怎么填
  • 毕业设计基于web难还是JAVA
  • 二挡起步教程
  • JavaScript ,18种常用数组方法,快来看看你会吗?
  • 微信多开使用方法
  • 转账支票适用范围
  • c语言的空指针
  • 买汽车配件属于什么服务
  • java变量初始化的两种方式
  • 增值税附表3
  • sql join 语句
  • 公司收取保证金合法吗
  • 其他应收款如何计提减值准备
  • 小规模纳税人分红要交税吗
  • 福州锦元房地产开发有限
  • 原材料暂估的业务包括
  • 保险工资单怎么开
  • 非限定性净资产 限定性净资产
  • 股票增发给谁
  • 违约合同怎么解决
  • 资产减值损失属于营业外支出吗
  • 数据库设计三大范式
  • mysql5.7.
  • 科普知识手抄报简单又漂亮
  • win10 impact
  • Ubuntu14.4下Sublime Text 3无法输入中文解决方法
  • host文件内容
  • mac如何中文输入法
  • 体验Win8灵活分屏贴靠功能图文介绍
  • cocos lua js
  • assets怎么编辑
  • 常用adb命令大全
  • django 验证码
  • 网页中经常用到的代码
  • JavaScript的RequireJS库入门指南
  • 健壮的什么
  • python爬虫视频教程
  • android adt
  • python读dat数据
  • python编程简单案例
  • 青岛税务局领导
  • 绿牌电动车需要什么条件
  • 江西省国家税务局李德平
  • 江苏省国家税务局电子税务局官网
  • 武汉税务地区编号是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设