cordova打包app热更新问题

2023-05-16

定义: 基于 cordova 框架能将web应用 (js, html, css, 图片等) 打包成 App。当 App 在终端上安装后,不需要重新下载app,实现内壳更新。

原理:1.在项目根目录的config.xml文件中添加指向服务器的地址

            2.在www目录中添加chcp.json配置文件,配置指向服务器,更新时间,更新方式

步骤:(进入项目目录)

1、在cordova项目下添加热更新插件  cordova-hot-code-push

cordova plugin add cordova-hot-code-push-plugin  命令

(安装插件后可以看到项目根目录增加了cordova-hcp.json。我的内容如下:)

           {
                            "name": "test",               // 可为空
                            "autogenerated": true,   //必须项,否则热更新无法使用(需手动添加)
                            "ios_identifier": "",          //应用在Apple Store id(可不填)
                            "android_identifier": "",   //应用在应用商店上的地址或app下载地址(可不填)
                            "update": "start",            //在应用启动时安装
                            "content_url": "http://192.168.0.114:8080/ptzy/www"    //www文件在服务器上的地址
                       }

update可选值:

  • start:应用启动,默认项(install update when application is launched)
  • resume:应用从后台恢复(install the update when application is resumed from background state)
  • now:下载更新后立即执行(install update as soon as it has been downloaded)

2、添加热更新工具  cordova-hot-code-push-cli

npm install -g cordova-hot-code-push-cli  命令

3、借助 cordova-hot-code-push-cli 工具在www目录下生成chcp.json和chcp.manifest文件:

执行 cordova-hcp init 命令

          Application config:chcp.json 包含发布相关信息:热更新代码版本号,应用 native side 版本号等等(描述了热更新代码的版本信息)

           Content manifest:chcp.manifest 包含项目热更新代码(静态)文件信息:文件名和文件哈希值(提供了热更新代码文件的变更信息)

4、config.xml 配置

在<widget>元素下添加如下:

  • auto-download:是否自动下载热更新代码,默认是 true
  • auto-install:是否自动安装热更新代码,默认是 true
  • native-interface:当前 native side 的版本号
  • config-file:配置文件 chcp.json 从服务器上加载的路径(必须的配置项)

5、cordova-hcp build

           执行该命令会在chcp.json文件中增加"release":"当前时间"字段。

(默认使用时间戳,格式为:yyyy.MM.dd-HH.mm.ss),插件将版本号进行字符串相等比较来判断是否存在新版本。

6、cordova build 打包安装app

7、测试更新

例:修改cordova项目下的html内容或js中alert("测试内容")后,执行步骤5命令,然后将项目下的www文件上传至content_url 配置的服务器文件路径下,重新打开app即可( 注:第一次启动的时候检查更新并下载更新,第二次启动的时候就会使用更新的版本)。

以下是检测文件修改,执行cordova-hcp server命令,如下:

当cordova中有文件修改时会输出文件信息,如下:

注:该方法为本人亲测实现,仅代表本人观点。如有讲述不清或其他问题,请留言,谢谢!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cordova打包app热更新问题 的相关文章

  • Android keyguard之上如何显示Toast

    ENV Android M 6 0 1 锁屏之上应该如何显示Toast呢 xff1f 看下面的实现 xff1a public class KeyguardToast public static Toast makeText Context
  • 2021-11-01

    建立spring helloword工程 1 建立maven工程 命名为spring helloword 2 导入依赖 span class token generics span class token punctuation lt sp
  • 2021-11-04

    spring基础 Spring是一个轻量级的控制反转 IoC 和面向切面 AOP 的容器 xff08 框架 xff09 IOC Inversion of Control 控制反转 IOC创建对象的方式 1 默认通过无参构造器创建对象 spa
  • filter和sessionListener实现session超时退出功能,过滤掉轮询请求

    filter和sessionListener实现session超时退出功能 xff0c 过滤掉轮询请求 1 requestFilter span class token keyword public span span class toke
  • MVC web项目中引入jquery插件

    MVC web项目中引入jquery插件 1 下载jquery https jquery com 看到这样的文档 xff0c 直接CTRL 43 S保存到自己的文件夹 2 将文件夹中的js文件直接拖拽导入到项目中的web文件下 xff0c
  • 27(牛客Top100)-62. 不同路径

    一个机器人位于一个 m x n 网格的左上角 xff08 起始点在下图中标记为 Start xff09 机器人每次只能向下或者向右移动一步 机器人试图达到网格的右下角 xff08 在下图中标记为 Finish xff09 问总共有多少条不同
  • 28(牛客Top100)-64. 最小路径和

    给定一个包含非负整数的 m x n 网格 grid xff0c 请找出一条从左上角到右下角的路径 xff0c 使得路径上的数字总和为最小 说明 xff1a 每次只能向下或者向右移动一步 思路 xff1a 动态规划 1 状态定义 初始化二维数
  • 30(牛客Top100)-72. 编辑距离

    给你两个单词 word1 和 word2 xff0c 请你计算出将 word1 转换成 word2 所使用的最少操作数 你可以对一个单词进行如下三种操作 xff1a 插入一个字符 删除一个字符 替换一个字符 思路 xff1a 动态规划 1
  • 29(牛客Top100)-70.爬楼梯

    假设你正在爬楼梯 需要 n 阶你才能到达楼顶 每次你可以爬 1 或 2 个台阶 你有多少种不同的方法可以爬到楼顶呢 xff1f 注意 xff1a 给定 n 是一个正整数 思路 xff1a 方法1 xff1a 动态规划 span class
  • 31(牛客Top100)-75.颜色分类

    给定一个包含红色 白色和蓝色 xff0c 一共 n 个元素的数组 xff0c 原地对它们进行排序 xff0c 使得相同颜色的元素相邻 xff0c 并按照红色 白色 蓝色顺序排列 此题中 xff0c 我们使用整数 0 1 和 2 分别表示红色
  • spring boot面试总结

    spring boot xff08 1 xff09 新建springboot项目 xff08 2 xff09 springboot整合mybatis实现增删改查 1 概述 1 1 springboot介绍 Spring Boot 是 Spr
  • [Android] 以singleInstance模式加载的Activity怎么接收以Bundle方式传递过来的参数 By onNewIntent() but not onResum

    问题来自这儿 xff0c Bundle在接收时未更新 xff0c http blog csdn net dadoneo article details 8164058 虽然可以暂时解决问题 xff0c 但并未说到根本原因 xff0c 下面就
  • 33(牛客Top100)-78.子集

    给你一个整数数组 nums xff0c 数组中的元素 互不相同 返回该数组所有可能的子集 xff08 幂集 xff09 解集 不能 包含重复的子集 你可以按 任意顺序 返回解集 思路 方法1 xff1a 二进制排序 xff08 字典排序 x
  • 34(牛客Top100)-79.单词搜索

    给定一个 m x n 二维字符网格 board 和一个字符串单词 word 如果 word 存在于网格中 xff0c 返回 true xff1b 否则 xff0c 返回 false 单词必须按照字母顺序 xff0c 通过相邻的单元格内的字母
  • 35(牛客Top100)-84.柱状图中最大的矩形

    给定 n 个非负整数 xff0c 用来表示柱状图中各个柱子的高度 每个柱子彼此相邻 xff0c 且宽度为 1 求在该柱状图中 xff0c 能够勾勒出来的矩形的最大面积 思路 xff1a 方法1 xff1a 栈 43 邵兵 span clas
  • 36(牛客Top100)-85.最大矩阵

    给定一个仅包含 0 和 1 大小为 rows x cols 的二维二进制矩阵 xff0c 找出只包含 1 的最大矩形 xff0c 并返回其面积 思路 xff1a 先抄下来 xff0c 我也不懂 方法1 xff1a 单调栈 span clas
  • 新建springboot项目

    1 新建项目 xff0c 选择Spring Initializr 2 直接finish xff0c 然后就等待下载各种包 xff0c 大约10分钟左右 3 包变绿后 xff0c pom xml中导入web依赖 span class toke
  • springboot整合mybatis实现增删改查

    1 新建springboot项目 xff0c 连接数据库 2 导入依赖 span class token generics span class token punctuation lt span dependencies span cla
  • 37(牛客Top100)-94.二叉树的中序遍历

    给定一个二叉树的根节点 root xff0c 返回它的 中序 遍历 思路 xff1a 方法1 xff1a 递归 按照访问左子树 根节点 右子树的方式遍历这棵树 span class token keyword public span spa
  • 38(牛客Top100)-96.不同的二叉搜索树

    给你一个整数 n xff0c 求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种 xff1f 返回满足题意的二叉搜索树的种数 思路 xff1a 1 动态规划 动态方程 xff1a span class token

随机推荐

  • 40(牛客Top100)-101.对称二叉树

    给定一个二叉树 xff0c 检查它是否是镜像对称的 思路 xff1a 方法1 xff1a 递归 span class token keyword public span span class token keyword boolean sp
  • 39(牛客Top100)-98.验证二叉搜索树

    给你一个二叉树的根节点 root xff0c 判断其是否是一个有效的二叉搜索树 有效 二叉搜索树定义如下 xff1a 节点的左子树只包含 小于 当前节点的数 节点的右子树只包含 大于 当前节点的数 所有左子树和右子树自身必须也是二叉搜索树
  • Excel合并计算完成多表格数据汇总求和

    Excel合并计算完成多表格数据汇总求和 多表格数据汇总可以使用透视表 xff0c 使用函数 xff0c 今天读书屋OFFICE网陈飞老师分享一个通过合并计算完成多表格数据汇总方法 xff0c 合并计算分为两种情况 xff0c 一种情况是
  • Google Datastore 学习记录

    由于在google app engine 使用google cloud sql 是要收费的 xff0c 于是学习一下google提供的免费的非关系型数据库datastore 它的特点有 xff1a No planned downtime x
  • 41(牛客Top100)-104.二叉树的最大深度

    给定一个二叉树 xff0c 找出其最大深度 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数 说明 叶子节点是指没有子节点的节点 思路 xff1a 方法1 xff1a 深度优先搜索 span class token keyword p
  • 42(牛客Top100)-102.二叉树的层序遍历

    给你一个二叉树 xff0c 请你返回其按 层序遍历 得到的节点值 xff08 即逐层地 xff0c 从左到右访问所有节点 xff09 思路 xff1a 用队列按层次遍历 方法1 xff1a 广度优先搜索 span class token k
  • MySQL总结

    1 数据库基础知识 1 1 什么是MySQL MySQL是一个关系型数据库管理系统 xff0c MySQL是最好的 RDBMS Relational Database Management System xff0c 关系数据库管理系统 应用
  • 45(牛客Top100)-121.买卖股票的最优时间

    给定一个数组 prices xff0c 它的第 i 个元素 prices i 表示一支给定股票第 i 天的价格 你只能选择 某一天 买入这只股票 xff0c 并选择在 未来的某一个不同的日子 卖出该股票 设计一个算法来计算你所能获取的最大利
  • 47(牛客Top100)-128.最长连续子序列

    给定一个未排序的整数数组 nums xff0c 找出数字连续的最长序列 xff08 不要求序列元素在原数组中连续 xff09 的长度 请你设计并实现时间复杂度为 O n 的算法解决此问题 思路 xff1a 方法1 xff1a 利用set集合
  • 48(牛客Top100)-136.只出现一次的数字

    给定一个非空整数数组 xff0c 除了某个元素只出现一次以外 xff0c 其余每个元素均出现两次 找出那个只出现了一次的元素 说明 xff1a 你的算法应该具有线性时间复杂度 你可以不使用额外空间来实现吗 xff1f 思路 xff1a 方法
  • stc-isp 51单片机烧录软件的安装

    stc isp的获取 百度网盘链接 xff1a https pan baidu com s 1vDTN2o8ffvczzNQGfyjHng 提取码 xff1a gdzf stc isp安装 此软件是绿色软件 xff0c 双击直接运行即可 开
  • 实习日记。。。

    第一周 第一天7 11 周一 入职第一天 xff0c 一直在数据库建表 xff0c 写了二十来个 xff0c 还有领了工卡和饭卡 xff0c 带我的老大哥请我恰了一顿 xff0c 晚上下班的时候 xff0c 因为舍不得我的电脑所以多待了一个
  • TCP/IP协议栈Lwip的设计与实现:之三

    接上文 xff1a TCP IP协议栈Lwip的设计与实现 xff1a 之二 龙赤子的博客 CSDN博客 目录 10 xff0e TCP处理 10 1概述 10 2数据结构 10 3序列号计算 10 4数据入队和传输 10 5接收段数据 1
  • c++——Unicode编码和多字节编码的区别

    1 VS项目属性不同字符集的区别 单字节字符集 xff1a 顾名思义 xff0c 单字节字符集就是用一个字节表示一个字符 xff0c 简称SBCS ASCII就是单字节字符集 在编码的过程中char类型就是单字节编码 Unicode字符集
  • 蓝桥杯 例题 切割矩形

    include lt bits stdc 43 43 h gt using namespace std int ans 61 0 int f int a int b ans 43 43 if a 61 61 1 amp amp b 61 6
  • c++——Unicode、UTF-8、UTF-16

    计算机起源于美国 xff0c 上个世纪 xff0c 他们对英语字符与二进制位之间的关系做了统一规定 xff0c 并制定了一套字符编码规则 xff0c 这套编码规则被称为ASCII编码 ASCII 编码一共定义了128个字符的编码规则 xff
  • spark MLlib之分类和回归

    MLlib支持多种方法用来处理二分分类 xff0c 多类分类以及回归分析 xff0c 下表列出了问题及对应的处理方法 xff1a 问题类型 支持的方法 二分分类 现行SVM xff0c 逻辑回归 xff0c 决策树 xff0c 贝叶斯 多类
  • 生产者消费者模型详解以及实现

    生产者消费者模式 我们先来看看什么是生产者消费者模式 xff0c 生产者消费者模式是程序设计中非常常见的一种设计模式 xff0c 被广泛运用在解耦 消息队列等场景 在现实世界中 xff0c 我们把生产商品的一方称为生产者 xff0c 把消费
  • 高频面试点:静态链接库与动态链接库

    库是写好的现有的 xff0c 成熟的 xff0c 可以复用的代码 现实中每个程序都要依赖很多基础的底层库 xff0c 不可能每个人的代码都从零开始 xff0c 因此库的存在意义非同寻常 本质上来说库是一种可执行代码的二进制形式 xff0c
  • cordova打包app热更新问题

    定义 xff1a 基于 cordova 框架能将web应用 js html css 图片等 打包成 App 当 App 在终端上安装后 xff0c 不需要重新下载app xff0c 实现内壳更新 原理 xff1a 1 在项目根目录的conf