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. QT中 使用c++调用python

    最近在做一个项目,开发环境用的是QT c++.项目中使用amazon云服务,调研发现有一个Amazon云的python接口.就有了标题中的问题,需要用C++来调用python脚本. 下面是一个c++调 ...

  2. Xcode.Subproject.And.Framework

    1. Easy Xcode Static Library Subprojects and Submodules http://www.blog.montgomerie.net/easy-xcode-s ...

  3. BZOJ4407 于神之怒加强版 - 莫比乌斯反演

    题解 非常裸的莫比乌斯反演. 但是反演完还需要快速计算一个积性函数(我直接用$nlogn$卷积被TLE了 推荐一个博客 我也不想再写一遍了 代码 #include<cstring> #in ...

  4. Vue.js 2.0 跨域请求数据

    Vuejs由1.0更新到了2.0版本.HTTP请求官方也从推荐使用Vue-Resoure变为了 axios .接下来我们来简单地用axios进行一下异步请求.(阅读本文作者默认读者具有使用npm命令的 ...

  5. Netty系列(四)TCP拆包和粘包

    Netty系列(四)TCP拆包和粘包 一.拆包和粘包问题 (1) 一个小的Socket Buffer问题 在基于流的传输里比如 TCP/IP,接收到的数据会先被存储到一个 socket 接收缓冲里.不 ...

  6. 泛型约束where条件的使用(可以通过类型参数动态反射创建实例)

    定义抽象的人类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...

  7. 新电脑的操作系统win10的所有设置问题汇总

    上来改的win7发现很多驱动没法装,装了也不能用,后来只能改win10了,另外win7的风扇声音也很大. 1.关闭win10自动更新.在服务里面禁用winupdate 2.注销改成了点头像,然后点注销 ...

  8. LNMP 网站搭建

    https://lnmp.org/ lnmp这个一键安装:https://lnmp.org/install.html wget -c http://soft.vpser.net/lnmp/lnmp1. ...

  9. Java 关键字有哪些

    数据类型: Boolean(布尔型)    int    long    short    byte    float    double    char    class    interface( ...

  10. 2018.09.27 bzoj2510: 弱题(概率dp+循环矩阵优化)

    传送门 简单概率dp. 显然每次转移的式子可以用一个矩阵表示出来: 这个是循环矩阵. 因此只用维护第一行快速幂一波就行了. 代码: #include<bits/stdc++.h> #def ...