原文转载自: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. 在Android中调用USB摄像头

    在网上找了很长时间,网上的资料基本都是说用外国人写的库,但实际上这个库的案例都是不能直接用的(因为权限问题),并不适合学习. 之后偶然发现有国人把这个库重新封装了,并且有源代码以及中文教程: http ...

  2. [Python] Marshmallow QuickStart

    常用小操作索引 指定fields必须:fields.String(required=True) 部分loading: 不load name:result = UserSchema.load({'ema ...

  3. LeetCode(867)

    title: LeetCode(867) tags: Python Algorithm 题目描述 给定一个矩阵 A, 返回 A 的转置矩阵. 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索 ...

  4. 如何避免Android程序的ANR?

    In Android, the system guards against applications that are insufficiently responsive for a period o ...

  5. 高性价比 VPS virtwire Host

    自从bandwagonhost 低端VPS售罄后,很难找到一个 比较性价比高的host做梯子了.今天找到VirtWire Host,带一个独立IPv4,5$/y 的价格还是可以接收的.而且相对于ban ...

  6. [POI2012]Tour de Bajtocja

    [POI2012]Tour de Bajtocja 题目大意: 给定一个\(n(n\le10^6)\)个点\(m(m\le2\times10^6)\)条边的无向图,问最少删掉多少条边能使得编号小于等于 ...

  7. vue中的v-cloak

    问题 在使用vue时,HTML 绑定 Vue实例,在页面加载时会闪烁类似{{msg}}这样的信息.可能会导致用户体验不好. 使用v-cloak v-cloak就能解决这个问题. (1)用法 这个指令保 ...

  8. sql语法中的中的with rollup

    就一道ctf题分析 http://ctf5.shiyanbar.com/web/pcat/index.php 打开一看是个登陆框,首先想到的是盲注,查看源代码,有个源文件, $filter = &qu ...

  9. ES6_函数方法

    //2017/7/15 //Javascript 中的方法:在一个对象中绑定函数,称为这个对象的方法. */ var boy={ name:'xiaoming', birth:2007, age:fu ...

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

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