原文转载自: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. 2017-10-5-Python

    想学习Python很长时间了,工作中使用Python脚本解决问题真的很爽. 插入一张Python的py文件常见的结构图: if __name__ =="__main__" 这条语句 ...

  2. (转)为什么wait(),notify()和notifyAll()必须在同步块或同步方法中调用

    我们常用wait(),notify()和notifyAll()方法来进行线程间通信.线程检查一个条件后就行进入等待状态,例如,在“生产者-消费者”模型中,生产者线程发现缓冲区满了就等待,消费者线程通过 ...

  3. 道路 [NOIP模拟]

    Description 我们看见了一个由 m 行 n 列的 1*1 的格子组成的矩阵,每个格子(I,j)有对应的高度 h[i][j]和初始的一个非负权值 v[i][j].我们可以随便选择一个格子作为起 ...

  4. 子串 [NOIP2015]

    Description 有两个仅包含小写英文字母的字符串 A 和 B.现在要从字符串 A 中取出 k 个互不重叠的非空子串,然后把这 k 个子串按照其在字符串 A 中出现的顺序依次连接起来得到一 个新 ...

  5. Java Socket基本使用

    首先 编写Client程序: import java.io.IOException; import java.net.Socket; import java.util.Scanner; public ...

  6. c++ 引用犯的一个错

    void cal(int * &a) { ................ } int main() { int x=1; int *p=x; cal( &x );//出错 cal( ...

  7. Linux之nfs服务

    1.二进制安装nfs 2.作为共享存储挂载在三台web的网站根目录下实现,在任意一台web上修改的结果,其余两台都可以看到 [root@localhost ~]# yum install rpcbin ...

  8. 用node搭建本地服务环境

    const express = require('express'); const path = require('path'); const request = require('request') ...

  9. linux i2c 的通信函数i2c_transfer在什么情况下出现错误

    问题: linux i2c 的通信函数i2c_transfer在什么情况下出现错误描述: linux i2c设备驱动 本人在写i2c设备驱动的时候使用i2c transfer函数进行通信的时候无法进行 ...

  10. Unity2017灯光烘焙知识点

    去研究一下灯光探针,性能可以提升不少.