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

  • ipad2021重量(ipad2021重量多少克)

    ipad2021重量(ipad2021重量多少克)

  • 花小猪怎么预约明天的车(花小猪怎么预约时间)

    花小猪怎么预约明天的车(花小猪怎么预约时间)

  • 微信朋友权限仅聊天是什么意思(微信朋友权限仅聊天能看朋友圈吗)

    微信朋友权限仅聊天是什么意思(微信朋友权限仅聊天能看朋友圈吗)

  • 华为nova7pro带无线充电功能吗(华为nova7pro带无线充电吗)

    华为nova7pro带无线充电功能吗(华为nova7pro带无线充电吗)

  • 华为p30pro什么时候更新系统(华为P30pro什么时候发布的)

    华为p30pro什么时候更新系统(华为P30pro什么时候发布的)

  • 苹果手机发热变暗如何关闭(苹果手机发热变慢)

    苹果手机发热变暗如何关闭(苹果手机发热变慢)

  • 短信找回手机服务密码(找回短信功能在哪里)

    短信找回手机服务密码(找回短信功能在哪里)

  • 天猫的东西和淘宝有什么区别(天猫和淘宝买的东西一样吗)

    天猫的东西和淘宝有什么区别(天猫和淘宝买的东西一样吗)

  • 手机密码忘记了怎么解(手机密码忘记了怎么刷机)

    手机密码忘记了怎么解(手机密码忘记了怎么刷机)

  • jmm一al00什么型号(jmm_al00参数)

    jmm一al00什么型号(jmm_al00参数)

  • 荣耀手机怎么分屏(荣耀手机怎么分屏小窗口)

    荣耀手机怎么分屏(荣耀手机怎么分屏小窗口)

  • 快手屏蔽作品怎么办(快手屏蔽作品怎么解除)

    快手屏蔽作品怎么办(快手屏蔽作品怎么解除)

  • server和windows区别(windows server 和win10的区别)

    server和windows区别(windows server 和win10的区别)

  • 锐龙53500u什么水平(锐龙ryzen53500u怎么样)

    锐龙53500u什么水平(锐龙ryzen53500u怎么样)

  • 电脑上的打印键在哪里(电脑上的打印键是哪两个)

    电脑上的打印键在哪里(电脑上的打印键是哪两个)

  • 快手上如何查举报人(怎样直接在快手上查举报人)

    快手上如何查举报人(怎样直接在快手上查举报人)

  • 手机qq怎么设置关系(手机qq怎么设置在线状态)

    手机qq怎么设置关系(手机qq怎么设置在线状态)

  • word文档筛选在哪里(word文档 筛选)

    word文档筛选在哪里(word文档 筛选)

  • 对讲机上ptt键什么意思(对讲机上的ptt)

    对讲机上ptt键什么意思(对讲机上的ptt)

  • 华为手机耳机模式在哪(华为手机耳机模式在哪里设置)

    华为手机耳机模式在哪(华为手机耳机模式在哪里设置)

  • 腾讯视频怎么没有倍速播放(腾讯视频怎么没有声音)

    腾讯视频怎么没有倍速播放(腾讯视频怎么没有声音)

  • 新浪卡贷服务器繁忙(新浪卡贷人工服务)

    新浪卡贷服务器繁忙(新浪卡贷人工服务)

  • qq被好友屏蔽了还可以看对方的空间吗(qq被好友屏蔽了还能发出去消息吗)

    qq被好友屏蔽了还可以看对方的空间吗(qq被好友屏蔽了还能发出去消息吗)

  • 快手直播能举报吗(快手直播举报对方会不会看到是我举报的)

    快手直播能举报吗(快手直播举报对方会不会看到是我举报的)

  • linux查看磁盘空间命令教程(linux查看磁盘空间 命令fdisk)

    linux查看磁盘空间命令教程(linux查看磁盘空间 命令fdisk)

  • isignup.exe是什么进程 isignup进程查询

    isignup.exe是什么进程 isignup进程查询

  • 餐饮业小规模开发票开什么
  • 多缴纳的附加税可以以后期间抵扣吗
  • 去年的电费可以在今年入账分录
  • 预付款可以抵扣进度款吗
  • 关联交易金额是付款还是入账
  • 缴注册印花税怎么做账
  • 停业之后申请恢复营业申请书范文
  • 公司土地和厂房可以按折价卖结股东权益吗
  • 代垫款收到的发票在哪里
  • 企业所得税虚报成本多少属于犯罪
  • 建筑企业对员工管理制度
  • 增值税专用发票怎么开
  • 增值税附加税计入什么会计科目
  • 职工福利费税前扣除标准最新
  • 过桥费和过路费去哪里了
  • 股权无偿赠与子女怎么办理手续
  • 装修公司购装修材料入什么科目?
  • 开给销货方红字信息表如何做账?
  • 母子公司之间的借款利息支出增值税能否抵扣
  • 付临时工工资计入什么科目
  • win10一段时间不动黑屏
  • 电脑看电影开全屏画面会迟钝是什么原因
  • 怎样才能防止臭虫在卧室里呢
  • 以前年度损益调整属于哪类科目
  • NEC笔记本电脑开机启动热键
  • 关闭windows defender实时防护
  • 所得税汇算清缴前取得跨年发票
  • 超市预售卡怎么记账
  • 贷款减值损失计提还能转回吗
  • win10电源图标灰色无法打开
  • 收到现金股利会引起什么变化
  • 增值税普通发票和专用发票有什么区别
  • 营业费用这个科目还在用吗
  • 全资子公司取得注册证可以免临床
  • 制造业利润占比多少合适
  • gpt详解
  • node express安装
  • 企业所得税如何计算应纳税所得额
  • 特殊动产的一物数卖履行顺序
  • ps大型文件储存位置在哪
  • 当月的印花税什么时候申报
  • 错误凭证如何修改?所有的错误的凭证都能修改吗?
  • 员工出差过程中意外死亡算工伤吗
  • 国外购买土地
  • 运输行业油费怎么入账
  • 外勤会计是做什么的
  • 经营范围广告业务能开什么发票
  • 交通运输企业有什么优惠政策
  • sqlserver数据库和mysql区别
  • 收到发票并支付货款怎么做账
  • 未达到起征点销售额写多少
  • 基建期罚款支出账务处理
  • 用友T3如何取消审核人和制单人不能为同一
  • 行政单位收到的待报解预算收入怎么做账
  • 先付款后开发票的会计分录?
  • 公司销售二手车怎么开票
  • 香港的收据可以作为报销凭证吗
  • mysql远程用户登录
  • cf游戏初始化失败是因为什么
  • archlinux安装zsh
  • windows下用什么编程工具
  • win8系统升级
  • 电脑无法使用qq
  • win8.1无法安装
  • win8本地账户
  • backtrack5教程
  • linux bzz
  • cocos引擎教程
  • jquery 刷新div
  • android游戏开发论文
  • 使用jquery实现的项目
  • ping大包丢包小包不丢包
  • js菜鸟编程
  • python字典合并 同key
  • 国际货运代理业务范围
  • 工会经费什么时候交
  • 江苏昆山电费查询电话
  • 福建地方税务局招聘
  • 河南地税网上税务局
  • 出口退税预申报有疑点怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设