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

用户打开应用程序,Plugin get被初始化,并在后台线程中启动更新加载程序。更新加载器config-file从config.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" />
</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":
}
4.添加安卓平台
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":
}
刚才不是 cordova run android 在真机上了嘛,现在我们退出应用程序,再打开应用程序可以发现内容已经改变了。
原本项目内容: 退出应用再打开时候内容:

如果你对此文章有疑问的欢迎评论,此随笔乃本人原创仅作记录,如若转载请说明出处。
若是此文章对你有帮助,文章右下方点赞推荐。
ionic 热更新 cordova-hot-code-push的更多相关文章
- [Phonegap+Sencha Touch] 移动开发77 Cordova Hot Code Push插件实现自己主动更新App的Web内容
原文地址:http://blog.csdn.net/lovelyelfpop/article/details/50848524 插件地址:https://github.com/nordnet/cord ...
- 转载《ionic 热更新 cordova-hot-code-push》
cordova-hot-code-push ,Cordova热代码推送插件提供了在应用程序中执行基于Web的内容的自动更新的功能.使用此插件可以更新存储在项目的www文件夹中的所有内容. cordov ...
- ionic 3 热更新 Hot Code Push
最近用ionic 3 做的app业务做的差不多了,突然想到以后app如果有更新该怎么搞?想到我们的app后期更新应该不大,,最多就是改改bug和增加下用户体验,如果只有一些小的更新,然后提交各个应用商 ...
- Cordova热更新cordova-hot-code-push
原文转载自:https://www.cnblogs.com/huangenai/p/7137475.html cordova-hot-code-push ,Cordova热代码推送插件提供了在应用程序 ...
- cordova热更新
cordova 热更新: 一.添加插件 1.新建Cordova项目 cordova create CordovaHotCode com.ezample.hotcode 2.添加Android平台 在新 ...
- Cordova热更新和App升级 - 简书
原文:Cordova热更新和App升级 - 简书 公司的cordova项目前段时间增加了热更新功能,自己第一次做的时候在网上查找了很多资料,有的资料写的并不全面遇到了很多坑.因此总结一些在开发过程中遇 ...
- Cordova热更新和App升级
web代码的更新此更新方式,只需要更新web前段代码,不需要更新android的原生代码.只是对js.html等的更新.1.添加插件 Cordova Hot Code Pushcordova plug ...
- cordova热更新插件的使用
cordova常用命令 一.添加插件 新建Cordova项目 cordova create CordovaHotCode com.ezample.hotcode 添加Android平台 在新建项目的 ...
- ionic2新手入门整理,搭建环境,创建demo,打包apk,热更新,优化启动慢等避坑详解
onic官方文档链接:http://ionicframework.com/docs/ 如果是新的环境会有很多坑,主要是有墙,请仔细阅读每个步骤 文档包含以下内容: l 环境搭建 l 创建demo并 ...
随机推荐
- Js 常用调试的方法
A 使用alert() 和document.write() 方法监视变量值 如果要中断代码的运行,监视变量的值,则使用alert() 方法: 如果需要查看的值很多,则使用document.write ...
- Intellij IDEA环境配置RestEasy,SpringMVC+RestEasy
在SpringMvc中配置RestEasy,需要以下步骤 1.通过maven导入restEasy所需要的jar包 2.在web.xml文件中添加相应的配置. 3.编写服务. 具体步骤: 1.通过mav ...
- 启动tomcat报错com.sun.faces.config.ConfigureListener
小白一个,最近想着上网看看自己搭建个用maven+spring+springmvc+mybaties的框架 然后......就出来这个么东东 java.lang.ClassNotFoundExcept ...
- Oracle 12c 安装问题及解决方案
1. 介绍 今天在我的开发电脑上安装Oracle12c,电脑环境是windows10家庭中文版,安装的Oracle数据库版本Oracle(12.1.0.2.0) - Standard Edition ...
- 致C#,致我这工作一年(下)
上一篇被很多前辈吐槽排版啊!哈哈!排版是有点土...继续接上文! 依旧跌宕起伏的人生 上次说到我面试通过了,然后我记得那一天的我太高兴了,把这一消息发给我父母和我所有的好基友,然后第二天就入职了,我记 ...
- temp--内蒙农信出差
============================2018.09.18~~~20181001================================== -------住宿----黎明花 ...
- 循环更新sqlserver数据库表ID
DECLARE @a INTDECLARE aaa CURSOR for select columnID from LNDB_COLUMN_INFO where columnID BETWEEN 22 ...
- C++枚举类型Enum及C++11强枚举类型用法
C++中的枚举类型常常和switch配合使用,这里用一个简单的switch控制键盘回调的代码片段来说明枚举的用法: //W A S D 前.后.左.右行走 enum Keydown{ Forward= ...
- Selenium定位iframe动态ID
Selenium定位iframe动态ID. 126邮箱实例 买了本虫师的书来学习selenium2自动化测试,然后写第一个实例就遇到了一些坑,好在有热心的网友提供了帮助,解决了问题 要学习seleni ...
- 深入-FastReport TfrxReport组件使用
[翻译] FastReport TfrxReport组件使用 一:加载和保存报表 报表默认保存在项目窗体文件中,大多数情况下,没有更多的操作要深圳市, 因此,你不需要采取特别措施来载入报告.如果你 ...