原文转载自:https://www.cnblogs.com/huangenai/p/7137475.html

cordova-hot-code-push ,Cordova热代码推送插件提供了在应用程序中执行基于Web的内容的自动更新的功能。使用此插件可以更新存储在项目的www文件夹中的所有内容。

cordova-hot-code-push 插件的github url :https://github.com/nordnet/cordova-hot-code-push

更新流程

用户打开应用程序,Plugin get被初始化,并在后台线程中启动更新加载程序。更新加载器config-fileconfig.xml指定的网址载入并加载JSON。然后将release加载的配置的版本与当前安装的配置进行比较。如果他们不同 - 我们去下一步,程序通过content_url配置来加载清单文件。

1.创建一个ionic 项目

首先你先新建一个ionic项目,在这里我新建的是ionic版本是3.5

ionic start CordovaHotCodePush tabs

cd CordovaHotCodePush

npm install

ionic serve

2.添加插件

添加cordova-hot-code-push插件

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

添加用于本地开发的插件

cordova  plugin add cordova-hot-code-push-local-dev-addon

安装Cordova Hot Code Push CLI客户端:

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

3.配置

找到项目目录下的config.xml文件,添加以下信息到config.xml文件中:

<chcp>
<config-file url="http://192.168.1.203:8121/chcp.json" />
       <native-interface version="1" />
</chcp>

这里说明下关于config.xml文件里<chcp></chcp>应该怎么配置。

配置文件url:

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

URL指向的是我服务器更新文件的路径的chcp.json文件,在这里我是部署在iis 上,网站的物理路径我直接指向了项目的www文件夹。

在本地开发模式的情况下,如果config-file未定义,则会自动设置为本地服务器上的应用程序配置路径。

定义当前版本:

<chcp>
<native-interface version="5" />
</chcp>

如果你应用程序的版本比服务器的版本还高,那么插件将不会从服务器加载新的更新,默认设置为1。

自动下载:

<chcp>
<auto-download enabled="false" />
</chcp>

定义插件是否允许下载更新。最初更新提取是自动执行的,但您可以禁用它,并通过JavaScript模块手动执行。默认情况下,首选项设置为true

自动安装:

<chcp>
<auto-install enabled="false" />
</chcp>

定义插件是否允许安装更新。最初更新安装是自动执行的,但您可以禁用它,并通过JavaScript模块手动执行。默认情况下,首选项设置为true

然后运行:

cordova-hcp sever

cordova-hcp build

现在 在项目文件下的www文件里面我们可以看到两个新增的文件,chcp.json和chcp.manifest。

chcp.json就是我上面说的config.xml里 config-file url 指向的那个chcp.json文件。

接下来详解一下chcp.json里面有什么东西

当你运行cordov-hcp build 的时候 她里面的东西就会自动更新成这样

{
"autogenerated": true,
"release": "2017.07.08-16.34.13"
}

release是我们生成的时间,除了这两个,还有其他的需要配置的。

content_url:服务器地址 我们在config.xml配置的config-file 是这个http://192.168.1.203:8121/chcp.json,那么这里我们就是这样的http://192.168.1.203:8121。
min_native_interface:版本设置。在config.xml我们设置的native-interface version=5 那么我们生成的就会是 "min_native_interface":5.
update:可以设置的值有start:启动应用程序时安装更新;resume:从后台状态恢复应用程序时安装更新;now:一旦下载就安装更新;

现在我们将chcp.json 文件修改成这样
{
"autogenerated": true,
"release": "2017.07.08-16.56.31",
"name": "hea",
"content_url": "http://192.168.1.203:8121",
"update": "start",
"min_native_interface": 1
}

4.添加安卓平台

cordova platform add android

运行在真机上

cordova run android

5.测试是否成功

我们修改项目的内容

然后 ionic serve 编译,跑在浏览器上我们的页面内容确实改变了。我们再运行cordova-hcp bulid,根据第三点配置,配置好chcp.json文件。

{
"autogenerated": true,
"release": "2017.07.08-17.22.34",
"name": "hea",
"content_url": "http://192.168.1.203:8121",
"update": "start",
"min_native_interface": 1
}

刚才不是 cordova run android 在真机上了嘛,现在我们退出应用程序,再打开应用程序可以发现内容已经改变了。

原本项目内容:                                                                           退出应用再打开时候内容:

         

Cordova热更新cordova-hot-code-push的更多相关文章

  1. cordova热更新

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

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

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

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

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

  4. Cordova热更新和App升级

    web代码的更新此更新方式,只需要更新web前段代码,不需要更新android的原生代码.只是对js.html等的更新.1.添加插件 Cordova Hot Code Pushcordova plug ...

  5. cordova热更新插件的使用

    cordova常用命令  一.添加插件 新建Cordova项目 cordova create CordovaHotCode com.ezample.hotcode 添加Android平台 在新建项目的 ...

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

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

  7. ionic cordova 热更新

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

  8. cordova热更新插件的使用:cordova-hot-code-push-plugin

    1. 添加插件:cordova plugin add cordova-hot-code-push-plugin 2. 先打开cli,执行命令 npm install -g cordova-hot-co ...

  9. cordova热更新插件调试

    有更新www目录内容后,首先sencha app build,然后进入 cordova目录 运行 cordova-hcp build, 然后查看 chcp.json文件时间,然后压缩cordova目录 ...

随机推荐

  1. java 日期递增

    public static void main(String[] args) throws ParseException { // 方法一 // Format f = new SimpleDateFo ...

  2. 数据仓库分层ODS DW DM 主题 标签

    数据仓库知识之ODS/DW/DM - xingchaojun的专栏 - CSDN博客 数据仓库为什么要分层 - 晨柳溪 - 博客园 数据仓库的架构与设计 - Trigl的博客 - CSDN博客 数据仓 ...

  3. tensorflow 手写数字识别

    https://www.kaggle.com/kakauandme/tensorflow-deep-nn 本人只是负责将这个kernels的代码整理了一遍,具体还是请看原链接 import numpy ...

  4. 在极算云安装pytorch0.4.1环境

    1.  已经安装了anaconda.然后就可以创建你自己的环境了(你最好一定要指定个python版本,如下, 我指定为python3.6, 如果需要的话你也可以指定其他python版本,并不是说ana ...

  5. Django中提供的6种缓存方式

    由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用: 缓存,缓存将一个某个views的返回值保存至内存或者memcache中, ...

  6. JS_高程2.在HTML中使用Javascript(1)

    1.使用<script>元素向HTML页面中插入Javascript HTML4.01中<script>标签有6个属性: (1)async:可选.表示立即下载脚本,不影响页面中 ...

  7. Servlet(8)—GenericServlet和改进Servlet实例

    概念genericservlet是个抽象的父类,必须给出子类才能实例化它.它给出了设计servlet的一些骨架,定义了servlet生命周期,还有一些得到名字.配置.初始化参数的方法,其设计的是和应用 ...

  8. pygame-KidsCanCode系列jumpy-part3-重力及碰撞检测

    这个游戏叫jumpy,大致玩法就是模拟超级玛丽一样,可以不停在各个档板上跳动,同时受到重力的作用,会向下掉,如果落下时,没有站在档板上,就挂了. 这节,我们加入重力因素,继续改造sprites.py ...

  9. C# StreamReader.ReadLine统计行数的问题

    要实现一个功能: 从 lua 文件中提取字符串放到 excel 中,再将 excel 给海外同事,翻译完成后,用翻译的文本替换相应中文. 整个功能并不复杂,要点有二点: 1.提取字符串,一行中文如&q ...

  10. centos7上 docket无权限的问题

    2.4 centos7上 docket无权限的问题,解决方案: https://stackoverflow.com/questions/24288616/permission-denied-on-ac ...