Cordova版本:8.0.0

更新APP平台:Android

操作系统:Windows

Cordova的热更新,作用是把www内的变动部分更新到APP中,实现主程序不动,完成更新!!这个热更新功能,对于IOS APP更有意义,因为,可以避免繁琐的苹果审核!!这个热更新几乎是所有Cordova开发都需要的功能!!!

Cordova热更新插件:https://github.com/nordnet/cordova-hot-code-push

Cordova热更新工具:https://github.com/nordnet/cordova-hot-code-push-cli

热更新,如何实现的?Cordova的热更新插件,靠什么去找到需要更新的程序呢?我们先不管这些问题了,先把上面插件和工具安装上再说!

一,安装Cordova热更新插件和热更新工具

1,安装Cordova热更新插件

cordova plugin add cordova-hot-code-push-plugin

cordova plugin add https://github.com/nordnet/cordova-hot-code-push.git

2,安装Cordova热更新工具,打开DOS窗口,输入下面命令后回车

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

假设,上面热更新插件和热更新工具都安装完毕了,那么回头看上面我提到的问题,应该搞清楚这些,那么就更容易理解和使用Cordova热更新插件了!

二,了解热更新重要文件和配置。

1,config.xml ,这个文件是Cordova工程配置文件,在Cordova工程的根目录。这里面需要加入一个很重要的配置项:

    <chcp>
<config-file url="http://192.168.2.3/chcp.json" />
</chcp>

这个url,是Cordova热更新配置文件,JSON格式的,存放于需要热更新的程序根目录中,而且必须能够被Cordova以Http方式访问到,否则无法更新!!!下面是我的配置信息截图:

 2,cordova-hcp.json,这是Cordova热更新工具自动生成的文件,用于热更新工具编译。存放位置,Cordova工程根目录。下面是我的这个文件的配置项目:

{
"name": "CordovaHotUpdate",
"ios_identifier": "",
"android_identifier": "io.cordova.hellocordova",
"update": "start",
"content_url": "http://192.168.2.3"
}

两个参数很重要,影响到是否可以更新和如何更新?

content_url:这是Cordova热更新程序存放目录,对应Cordova工程的www目录,以后程序变化之后,使用Cordova热更新工具编译之后,直接把www目录中所有文件覆盖这个目录中的所有文件就可以了。

update:这是热更新的方式,通过它决定以什么样的方式更新Cordova程序。

3,chcp.json,这是极其重要的一个文件,是否能够热更新,它起到至关重要的作用!这个文件存放目录,热更新程序的根目录。Cordova热更新插件进行热更新,必须首先访问这个文件,通过它来获取热更新程序存放目录,以及热更新方式!它的配置和上面的“cordova-hcp.json”基本一样。这个文件是Cordova热更新工具自动生成的文件。

4,chcp.manifest,这是极其重要的一个文件,是否能够热更新,它起到至关重要的作用!它里面记录了程序的变动。这个文件是Cordova热更新工具自动生成的文件。

三,实现热更新。前提是已经安装完了Cordova热更新插件和帮助工具。

注意:所有命令均是在Cordova工程目录下操作的,在DOS窗口执行命令之前,必须首先进入Cordova工程根目录

1,生成热更新相关配置文件。在DOS窗口,先进入Cordova工程根目录,随后在DOS窗口中输入下面命令:

cordova-hcp init

这个时候,窗口中会出现多个问题,等待你输入,最重要的是上面我提到的两个update和content_url,把上面问题都回答完毕后,回车就会生成了cordova-hcp.json,存放在Cordova根目录下!content_url,是非常重要的配置项,这是Cordova更新程序的在服务器上的存放目录,必须保证这个目录能够以http方式被访问,而且一定保证里面的chcp.json也能够以http方式访问(IIS应该设置一下才能访问扩展名为json的文件)。

2,用热更新帮助工具编译当前程序。在DOS窗口中输入下面命令。

cordova-hcp build

执行这个命令后,会很快编译完毕,如果程序不大的话,随后你会在www目录中发现两个文件:chcp.json和chcp.manifest,这两个文件,是这个热更新帮助工具自动生成的,不要手动去修改,否则如果修改错误了,热更新也应该不能完成了!

3,编译Cordova的APP。在DOS窗口输入对应APP编译命令,我是用Android做的APP,而且用真机连接测试,所以输入下面命令,直接把编译好的APP安装到了我的真机上。

cordova run android--device

4,修改Cordova的程序,随后再次用Cordova帮助工具编译。编译命令在上面:2

5,编译完毕后,把所有www目录,覆盖测试服务器中对应的文件。

6,重新启动APP。如果一切正常,那么你应该可以看到热更新完成了,这次修改的文件已经在你APP中显示出来了!这里也取决于你的update参数如何配置,具体配置说明,请参考官方文档说明。

可能引起困惑问题:

1,热更新服务器需要安装什么软件吗?什么软件都不需要安装,只需要你能保证存放热更新程序的目录以http方式正常访问,而且json格式的文件,也必须同样以Http方式访问到。

2,我只安装热更新插件,是否可以实现热更新?应该可以,但是比较麻烦,那些配置文件手动处理不太方便,而且还有一个标明文件变动的文件,那个处理应该很费解,最好还是使用Cordova帮助工具。

3,Cordova热更新帮助工具,有一个"server"命令,我是否需要?确实,这个工具提供了一个这样的命令,命令如下:

cordova-hcp server

这个命令,是帮助你在本地实现一个http服务器,测试Cordova热更新,也可以在开发时候使用这样方式来更新程序,真正在互联网上服务器实现热更新时候,不需要这个命令。

最后截图,是我的Android APP实现热更新之后的图片:

参考:

https://github.com/nordnet/cordova-hot-code-push

https://github.com/nordnet/cordova-hot-code-push-cli

Cordova - 实现热更新 !的更多相关文章

  1. Cordova 代码热更新 - 简书

    原文:Cordova 代码热更新 - 简书 Cordova 代码热更新 [图片上传失败...(image-a19be7-1521624289049)] 基于 Cordova 框架能将网页应用 (js, ...

  2. 梳理下Cordova的热更新

    公司的大部分都是Hybrid 产品,也就是混合开发,所以比较重要的一个核心功能就是热更新了. 做这个功能的时候中间碰到不少坑,记录一下,比较简单,大致思想就是从服务器拉取JS文件替换掉本地对应文件 之 ...

  3. 阿里云 持续集成环境自动部署cordova项目热更新脚本

    linux脚本: #!/bin/sh rm -rf /home/tomcat/xiecang_hybird_web/xiecang_hybird_web.zip rm -rf /home/tomcat ...

  4. ionic cordova 热更新的一些问题

    因为项目需要用到更新这一块的东西,所以就查了下cordova 的热更新,然后遇到了 一些问题,记录下来备忘. 项目用的是ionic 下载cordova的内容就直接跳过了. 首先是下载cordova的插 ...

  5. ionic cordova 热更新

    因为项目需要,使用cordova的热更新插件,本地调试很简单,看连接https://github.com/nordnet/cordova-hot-code-push,就几步,这里不说了. 下面两个要装 ...

  6. [Android教程] Cordova开发App入门(二)使用热更新插件

    前言 不知各位遇没遇到过,刚刚发布的应用,突然发现了一个隐藏极深的“碧油鸡(BUG)”,肿么办!肿么办!肿么办!如果被老板发现,一定会让程序员哥哥去“吃鸡”.但是想要修复这个“碧油鸡”,就必须要重新打 ...

  7. Cordova热更新和App升级 - 简书

    原文:Cordova热更新和App升级 - 简书 公司的cordova项目前段时间增加了热更新功能,自己第一次做的时候在网上查找了很多资料,有的资料写的并不全面遇到了很多坑.因此总结一些在开发过程中遇 ...

  8. ionic cordova 热更新(引用自www.zyyapp.com/post/116.html)

    上篇文章cordova 把html打包成安卓应用 http://www.zyyapp.com/post/115.html cordova 热更新是一个大坑,我看了一天一夜才明白.网上的教程都没说到重点 ...

  9. cordova热更新

    cordova 热更新: 一.添加插件 1.新建Cordova项目 cordova create CordovaHotCode com.ezample.hotcode 2.添加Android平台 在新 ...

随机推荐

  1. struts2框架之自定义拦截器和配置

    struts框架中也存在拦截器,只不过系统自动调用.框架自带的拦截器的配置文件所在的位置为: java Resources--->Libraries--->struts2-core-2.3 ...

  2. Python3编程技巧

    高效处理数据类型方法: In []: from random import randint In []: data=[randint(-,) )] In []: data Out[]: [-, -, ...

  3. golang开发集训营

    初识golang Go与VScode开发工具 Golang开门见山

  4. HTML5新协议介绍 WebSocket

    WebSocket protocol 是HTML5一种新的协议(protocol).它是实现了浏览器与服务器全双工通信(full-duplex). 现在,很多网站为了实现即时通讯(real-time) ...

  5. Linux tcpdump命令

    一.简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据 ...

  6. LaTeX 公式(转自)Iowa_Battleship 神犇

    传送门 (我这个蒟蒻只是mark一下 这个LaTex公式很全!!我是照着打数学公式的!! orz大佬Iowa

  7. 一篇文章Tornado快速入门

    Tornado是一个PythonWeb框架.一个异步网络库.通过使用非阻塞网络I/O,Tornado能够处理数以千计的连接,这意味着对于实时Web服务来说,Tornado是一个理想的Web框架. 作为 ...

  8. Hadoop 1: NCDC 数据准备

    本文介绍Hadoop- The Definitive Guide一书中的NCDC数据准备,为后面的学习构建大数据环境; 环境 3节点 Hadoop 2.7.3 集群; java version &qu ...

  9. KbmMW 4.30.00 发布

    今天早上,KbmMW发布了4.30.00 版,这个版本开始支持XE4 的WIN/WIN64/OSX. 暂时不支持ios开发,同时加强了通过JSON 的对象序列化.还有就是解决了我提交的几个有关 汉字处 ...

  10. 2018.09.24 bzoj4977: [[Lydsy1708月赛]跳伞求生(贪心+线段树)

    传送门 线段树好题. 这题一看我就想贪心. 先把a,b数组排序. 然后我们选择a数组中最大的b个数(不足b个就选a个数),分别贪心出在b数组中可以获得的最大贡献. 这时可以用线段树优化. 然后交上去只 ...