| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> uniapp 在线升级(热更新)及java后台 -> 正文阅读 |
|
[JavaScript知识库]uniapp 在线升级(热更新)及java后台 |
????????如果你们也是厌倦了每次升级都要重新下载一整个包,重新安装。那么可以试试这个热更新方案,其实热更新这个技术在移动端并不少见,好几年前做原生APP开发的应该都接触过这个技术,这次我也是用到了uniapp的热更新,所以记录一下,方便后期直接使用。 ? ? ? ? 技术不难,请往下看 ~? ? ? ? ? 首先我是创建了一个uniapp项目,啥代码都没有写。咱们就把这个当做是实际项目中已经开发好的项目,毕竟只是演示嘛。所以这个版本就当做是1.0.0版本吧 ???????? ? ? ? ? ?好,那么接下来,我们就在这个1.0.0版本中加入热更新的代码吧。 一、编写热更新代码到旧版本? ? ? ? 首先打开项目里的App.vue代码,在onLaunch中编写,因为我们希望App一启动的时候就会去检测是否有新版本需要去更新。具体代码如下:
代码已经给你了,但是听我解说一下哈,?首先,// #ifdef APP-PLUS 这个玩意不是个注释,这叫条件编译 条件编译(在组件,css,js , .json配置中都可以使用): 在某种条件下才会编译执行或者不执行的代码块 语法: // #条件? 平台 ? ?条件: ? ?????????ifdef :? if? defined 正向条件,意思就是在xxx平台下才会编译生效 ? ?????????ifndef : if not defined 反向条件,意思就是在xxx平台下不会生效,其他平台都生效 ? ?????????endif : 结束标记,意味着条件结束 ???平台: ????????? ?APP-PLUS????????只会在app端环境下生效 ? ? ? ? ? ?APP-PLUS-NVUE????????只会在app nvue环境下生效 ? ? ? ? ? ?H5????????只会在H5环境下生效 ? ? ? ? ? ?MP????????微信小程序/支付宝小程序/百度小程序/头条小程序/QQ小程序 ? ? ? ? ? ?MP-WEIXIN? ? ? ??只会在微信小程序环境下生效 ? ? ? ? ? ?MP-ALIPAY????????只会在支付宝小程序环境下生效 ? ? ? ? ? ?MP-BAIDU? ? ? ? ?只会在百度小程序环境下生效 ? ? ? ? ? ?MP-TOUTIAO????????只会在字节跳动小程序环境下生效 ? ? ? ? ? ?MP-360????????只会在360小程序环境下生效 ? ? ? ? ? ?MP-QQ??????????只会在QQ小程序环境下生效 plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) 就是获取程序自身配置,通过自身的appid获取程序包信息 widgetInfo 里面就包含了各种包信息,其中就有版本号,版本名称 就是这个配置,比如我们是1.0.0版本,版本号就是100,等我们修改了bug或者新增了功能,版本我们就可以改成1.0.1,版本号就改成101。这样实际运营时,我们就可以知道目前安装的版本是多少,以及进行版本比较了 ?再往下uni.request就是个正常的请求,把自己当前的版本号,记得是数字的那个,不是那个带点的。发给后台,后台去查询最新的版本的版本号进行比较,如果发送的版本小于后台查询的版本,那么说明你需要更新版本了,会返回下载地址等,如果发送的版本不小于后台查询的版本,那么就无需返回下载地址,我是这样写的逻辑。 所以我判断返回code是否是0,0的话,代表需要更新,然后当下载地址不为空时就去下载了。下载成功后,就使用plus.runtime.install去安装即可 二、编写新版本? ? ? ? 接下来我们先编写一点代码,也就是实际项目中,我们修复了bug或者新增了功能之后,变成了新的版本。我这里就是简单加行代码表示新增了功能 ???????? ? ? ? ? ?然后要去manifest.json中修改版本信息 ???????? 三、生成wgt包? ? ? ? 我们基于新版本生成wgt包,也就是升级包。点击发行选择 原生App-制作应用wgt包 ????????? ? ?加不加混淆看你自己,加了更安全,一定程度上防止反编译 我们可以看到wgt包已经生成了。 ?四、java后台编写(只做参考,实际项目自己修改)?我的后台是个springboot+layui+mybatis 而且我只做了查询列表,上传wgt包,跟检查是否需要更新功能 表结构: ? Controller
Service
?Mapper
Mapper.xml
?前端页面代码就不放了,意义不大 前端效果图如下: ?这样就OK了,上传了这个新版本包 升级后效果: ?好了,到此就告一段落吧! 本人个人原创,如有雷同,纯属巧合,或者与本人联系,做改动。请转载或者CV组合标明出处,谢谢!(如有疑问或错误欢迎指出,本人QQ:752231513) |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 10:17:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |