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

  • 知乎怎么匿名评论别人的回答(知乎怎么匿名评价别人的评论内容)

    知乎怎么匿名评论别人的回答(知乎怎么匿名评价别人的评论内容)

  • 安卓ios是什么意思(安卓ios是啥)

    安卓ios是什么意思(安卓ios是啥)

  • ine-tl00是华为什么型号手机

    ine-tl00是华为什么型号手机

  • 华为p40pro插卡位置(华为p40 pro插卡在哪里)

    华为p40pro插卡位置(华为p40 pro插卡在哪里)

  • oppo一拨号就自动黑屏(oppo拨号一拨自动挂断)

    oppo一拨号就自动黑屏(oppo拨号一拨自动挂断)

  • 探探擦肩而过是被左滑了吗(探探擦肩而过是真的吗?)

    探探擦肩而过是被左滑了吗(探探擦肩而过是真的吗?)

  • iphone腾讯会议录屏时怎么录不了视频原声(iPhone腾讯会议录制在哪里)

    iphone腾讯会议录屏时怎么录不了视频原声(iPhone腾讯会议录制在哪里)

  • oppo手机关机了还能定位吗(oppo手机关机了可以查到位置吗)

    oppo手机关机了还能定位吗(oppo手机关机了可以查到位置吗)

  • 微信图片可以打印出来吗(微信图片可以打包发送吗)

    微信图片可以打印出来吗(微信图片可以打包发送吗)

  • 苹果xs可以用5g网络吗(苹果xs可以用5g卡使用4g)

    苹果xs可以用5g网络吗(苹果xs可以用5g卡使用4g)

  • 青桔单车忘记锁被别人骑走怎么办(青桔单车忘记锁车被别人骑走了怎么办)

    青桔单车忘记锁被别人骑走怎么办(青桔单车忘记锁车被别人骑走了怎么办)

  • 抖音现在怎么不能分享视频了?(抖音现在怎么不显示地址了)

    抖音现在怎么不能分享视频了?(抖音现在怎么不显示地址了)

  • 蜂窝移动数据是流量吗(蜂窝移动数据是不是就是流量)

    蜂窝移动数据是流量吗(蜂窝移动数据是不是就是流量)

  • iphone4s怎么截长图(苹果4截图怎么截)

    iphone4s怎么截长图(苹果4截图怎么截)

  • 华为荣耀8怎么修改时间(华为荣耀8怎么刷机)

    华为荣耀8怎么修改时间(华为荣耀8怎么刷机)

  • 苹果6怎么限制热点人数(苹果6怎么限制app使用时间)

    苹果6怎么限制热点人数(苹果6怎么限制app使用时间)

  • 微信辅助解封一年几次(微信辅助解封一个月能解几次)

    微信辅助解封一年几次(微信辅助解封一个月能解几次)

  • 手机怎么把照片弄成jpg格式(手机怎么把照片弄成一寸)

    手机怎么把照片弄成jpg格式(手机怎么把照片弄成一寸)

  • 华为p30有哪些特殊功能(华为p30有哪些特点和功能)

    华为p30有哪些特殊功能(华为p30有哪些特点和功能)

  • 扫码付款怎么联系顾客(扫码付款怎么联系对方微信)

    扫码付款怎么联系顾客(扫码付款怎么联系对方微信)

  • 为什么qq老是有新号加我(为什么qq老是有条件查找的人加我)

    为什么qq老是有新号加我(为什么qq老是有条件查找的人加我)

  • 美团怎么看好友(美团怎么看好友吃了什么)

    美团怎么看好友(美团怎么看好友吃了什么)

  • 苹果手机电量变黄怎么回事(苹果手机电量变紫色了)

    苹果手机电量变黄怎么回事(苹果手机电量变紫色了)

  • mm_server.exe是什么进程 有什么用 mm_server进程查询(mmc.exe是什么进程)

    mm_server.exe是什么进程 有什么用 mm_server进程查询(mmc.exe是什么进程)

  • 销售佣金计入什么会计科目
  • 劳务费属于印花税范围吗
  • 增值税附征的计算公式
  • 无形资产升值怎么处理
  • 土地转让交哪些税种
  • 货物出口到保税区复进口
  • 工程结算与工程施工如何结转
  • 销售产品结转成本怎么算
  • 其他流动资产待抵扣进项税额
  • 话费发票入账
  • 保证金可以抵货款吗
  • 民事诉讼的适用范围和基本制度
  • 个体户个人所得税怎么交
  • 商砼税收政策
  • 被吊销营业执照的公司如何注销
  • 罚款收入增值税税率是多少
  • 小规模纳税人纳税申报时间
  • 增值税的计征方法有哪些
  • 冲抵货款销售返利会计分录怎么写?
  • 小规模纳税人代理销售税率是多少
  • 哪些项目可以在城镇开发边界外
  • 1697510021
  • 企业间借款的增值税计算
  • 土地价款扣除会计分录
  • 欠税不交的后果 个人
  • u盘中毒症状
  • 微信订阅项目
  • 计提劳务派遣人员社保收到发票后没有付款的会计分录
  • 固定资产更新改造支出计入什么科目
  • 增值税发票销货清单哪里领
  • nodejs应用领域
  • 日落时分谭咏麟歌词
  • 企业研发费用加计扣除最新政策
  • 企业所得税可以结转以后年度扣除的费用
  • chat form
  • 建筑企业安装水电过程中很难发现的潜在问题
  • springboot自带tomcat吗
  • vue前端常见面试题
  • 商贸公司库存怎么盘点准确一点儿
  • 过路费属于会计哪个科目
  • 主营业务收入的t型账户怎么写
  • sql2000数据迁移到2008
  • MySQL中create table as 与like的区别分析
  • 固定资产盘盈为什么计入盈余公积
  • 长期股权投资评估增值调整
  • 企业销售收入的确认应具备哪些条件
  • 劳保用品费用计入什么科目
  • 企业迁移税务如何办理
  • 固定资产没有折旧完要转走会计科目
  • 现在购入不动产怎么办
  • 广告牌制作计入什么科目
  • 现金往来款怎么做账
  • 销售未开票怎么做分录
  • 租写字楼可以办个体户吗
  • 银行存款付款是借方还是贷方
  • 小规模纳税人发票可以抵扣吗
  • WINDOWS操作系统属于单用户任务操作系统
  • win 10怎么更换系统
  • windows server 2016最大内存
  • Windows8.1和Ubuntu14.04双系统卸载Ubuntu的方法
  • mac系统操作的小技巧
  • freebsd怎么样
  • centos文档
  • 软件源推荐
  • Ubuntu操作系统安装步骤
  • win7任务栏显示预览窗口
  • centos安装zsh
  • Extjs Ext.MessageBox.confirm 确认对话框详解
  • unity3d游戏教程
  • Node.js中的construct构造函数
  • javascript运用
  • WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
  • 如何用jquery
  • jquery弹出窗口
  • jQuery 更改checkbox的状态,无效的解决方法
  • javascript密码框
  • python 举例
  • 湖南省电子国税
  • 收到税务局发的多条宣传短信
  • 注销的卡补回来还能恢复以前的套餐吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设