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

  • oppok5是不是5g手机(oppok5支不支持5g)

    oppok5是不是5g手机(oppok5支不支持5g)

  • 华为p40pro屏幕尺寸是多大(华为mate50pro屏幕尺寸)

    华为p40pro屏幕尺寸是多大(华为mate50pro屏幕尺寸)

  • 华为p9手机支持5g网络吗(华为p9能用5a充电线吗)

    华为p9手机支持5g网络吗(华为p9能用5a充电线吗)

  • 苹果电池健康90正常吗(苹果电池健康90还能用多久)

    苹果电池健康90正常吗(苹果电池健康90还能用多久)

  • 手机外放没有声音但是耳机有声(手机外放没有声音修理多少钱)

    手机外放没有声音但是耳机有声(手机外放没有声音修理多少钱)

  • 微信修改登录密码怎么修改(微信修改登录密码但忘记原密码)

    微信修改登录密码怎么修改(微信修改登录密码但忘记原密码)

  • 手机上眼睛的图案代表什么(手机上的眼睛怎么去掉)

    手机上眼睛的图案代表什么(手机上的眼睛怎么去掉)

  • 快手号怎么改第三次(快手怎么改第3次名字教程)

    快手号怎么改第三次(快手怎么改第3次名字教程)

  • 相机闪退是什么原因(相机闪退是什么原因relame)

    相机闪退是什么原因(相机闪退是什么原因relame)

  • 苹果下载不了app怎么回事(苹果下载不了app一直要验证)

    苹果下载不了app怎么回事(苹果下载不了app一直要验证)

  • 小米快速同步模式是什么(小米同步怎么开)

    小米快速同步模式是什么(小米同步怎么开)

  • 手机发微信发不出去怎么回事(手机微信发不出去怎么回事儿?)

    手机发微信发不出去怎么回事(手机微信发不出去怎么回事儿?)

  • 手机装了内存卡怎么装两个手机卡(手机装了内存卡怎么看内存)

    手机装了内存卡怎么装两个手机卡(手机装了内存卡怎么看内存)

  • 美篇草稿箱在哪里找到(美篇里的草稿)

    美篇草稿箱在哪里找到(美篇里的草稿)

  • 照片可以用黑框吗(照片可以用黑框打印吗)

    照片可以用黑框吗(照片可以用黑框打印吗)

  • 怎么解绑爱奇艺手机号(怎么解绑爱奇艺绑定的微信)

    怎么解绑爱奇艺手机号(怎么解绑爱奇艺绑定的微信)

  • win10wifi有个白色星号(win10wifi列表一片空白)

    win10wifi有个白色星号(win10wifi列表一片空白)

  • 淘宝双十一啥时候开始(淘宝双十一啥时候开始满减)

    淘宝双十一啥时候开始(淘宝双十一啥时候开始满减)

  • 拼多多有几次免拼机会(拼多多有几次免拼单)

    拼多多有几次免拼机会(拼多多有几次免拼单)

  • 交易猫怎么换绑淘宝账号(交易猫怎么换绑邮箱)

    交易猫怎么换绑淘宝账号(交易猫怎么换绑邮箱)

  • 微信怎么查看共同好友(微信怎么查看共享位置记录)

    微信怎么查看共同好友(微信怎么查看共享位置记录)

  • 苹果型号mq开头是什么版本(苹果型号mq开头是哪里的)

    苹果型号mq开头是什么版本(苹果型号mq开头是哪里的)

  • turtle库是一个什么库(turtle库的作用)

    turtle库是一个什么库(turtle库的作用)

  • iPhone Xs Max的具体发布时间(xsmax独特功能)

    iPhone Xs Max的具体发布时间(xsmax独特功能)

  • 快手直播平台怎么分成(快手直播平台怎么赚钱)

    快手直播平台怎么分成(快手直播平台怎么赚钱)

  • oppor11可以开空调吗(oppor11手机可以开空调吗?)

    oppor11可以开空调吗(oppor11手机可以开空调吗?)

  • WordPress 置顶文章的3种方法(置顶文章)

    WordPress 置顶文章的3种方法(置顶文章)

  • 过路费报销属于什么费用科目
  • 销项发票能不能留抵
  • 期末未缴税额为负数怎么办
  • 非税收入票据能报销吗
  • 库存完工产品属于什么会计科目,什么类别
  • 从业人数和资产的关系
  • 应计利息会计分录处理
  • 内部资金往来科目
  • 公益机构可以收费吗
  • 劳务分包预缴税怎么算
  • 金税盘的进项发票怎么导出
  • 退回多扣社保分录
  • 收到招聘通知
  • 出口退税账务处理例题
  • 工资退回怎么处理
  • 以前年度损益调整属于哪类科目
  • 个体工商户交纳社保办法
  • 城建税教育费附加和地方教育费附加
  • 工伤赔付是那个出钱呢
  • 集团提供厂房是否需要缴纳印花税?
  • 招标需要交保证金吗
  • 总公司与分公司的税务关系怎么交税
  • 开办企业验资
  • 公司名下的车怎么上牌
  • windows10如何设置锁屏时间
  • 合伙企业利润分配个人所得税
  • 总公司给子公司打款 如何做凭证
  • iphone7plus怎么设置5g网络
  • thinkphp怎么用
  • 以租代购算固定资产吗
  • searchnav.exe - searchnav是什么进程 有什么用
  • 其他应收款年末余额较大
  • musirc4.71.exe - musirc4是什么进程文件 有什么作用
  • php 重写 重载
  • 利息年化率怎么算化利率怎么算
  • 国有资产无偿使用违反什么规定
  • 数字孪生demo
  • docker_practice
  • 装修费摊销会计准则
  • 2020年企业报税的详细流程
  • mysql深度解析
  • mongodb 入门
  • 临时聘用人员管理办法
  • 增量留底退税额计算
  • 合同履约成本如何设置明细科目
  • 中级会计职称与中级会计师的区别
  • 销售费用期末余额
  • 印花税签合同
  • 企业其他应付款增加的原因
  • 买钢管扣件
  • mysql修改后立即查询
  • XP系统安装不了游戏
  • ubuntu系统查看mac地址命令
  • acer笔记本重装系统教程
  • win7无法更改设置
  • Ubuntu After Install 2.6 帮助你安装 Ubuntu 常用软件
  • 获取linuxip
  • win 8.1激活
  • 将windows的文件上传到ubuntu
  • linux0.11文件系统
  • win10在哪里找
  • win10网络共享失败
  • Win8系统32位和64位哪个好应该如何选择
  • 导演都有什么分类
  • css div模糊
  • linux反转
  • bootstrap基础教程 源代码
  • shell脚本字符串操作
  • jquery的方法有哪些
  • 对于javascript理解
  • Javascript Math ceil()、floor()、round()三个函数的区别
  • js键盘事件有哪些?各自的作用如何
  • js实现超精简的快捷键
  • javascript运用
  • 深入理解中国式现代化
  • Android Studio:adb not responding
  • 技术服务费减免企业所得税政策
  • 济南房产税如何计算公式
  • 营业税未达起征点
  • 青岛振兴税务师招聘
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设