1、添加插件:cordova pluginaddcordova-hot-code-push-plugin
2、添加热更新工具:npm install -g cordova-hot-code-push-cli
3、在根目录下执行:cordova-hcp init,初始化cordova-hcp.json文件
Project name: 你现在的项目名称所需.
Amazon S3 Bucket name:亚马逊上的S3桶的名字。可以跳过。
Amazon S3 region: 亚马逊S3地区。可以跳过。
iOS app identifier: 应用程序商店的应用程序ID。App升级是跳转应用商店进行升级。
Android app identifier: App在应用商城的地址,或者是apk的下载地址。
Update method: 何时执行更新。
start: 在启动应用程序时安装更新。
resume: 在恢复应用程序(从背景移动到前景状态)或启动时,安装更新;默认使用。
now: 从服务器加载更新后立即安装。
{
"name": "",//可为空
"autogenerated": true,//如果不添加,热更新会不能使用
"ios_identifier": "id123456789",//应用在App store id(可为空)
"android_identifier": "",//应用在应用商城上的地址或者App的下载地址(可为空)
"update": "start",//在应用启动时安装
"min_native_interface": 1,//可用以做App升级(可以不填)
"content_url": "http://************/cordova/www"//www文件在服务器上的地址
}
4、在www文件下生成chcp.json 和 chcp.manifest文件
执行命令:cordova-hcp build
chcp.json: 包含发布相关信息:热更新代码版本号,应用 native side 版本号等等
chcp.manifest: 包含项目热更新代码(静态)文件信息:文件名和文件哈希值
在chcp.json文件中增加"release":"当前时间"字段。(默认使用时间戳,格式为:yyyy.MM.dd-HH.mm.ss),插件将版本号进行字符串相等比较来判断是否存在新版本。
"release":"2017.06.07-16.30.20",//唯一web项目版本号,用与热更新web内容的更新。
5、config.xml 配置
<widget....
....
<chcp>
<auto-downloadenabled="true"/>
<auto-installenabled="true"/>
<native-interfaceversion="1"/>
<config-fileurl="https://************/cordova/www/chcp.json"/>
</chcp>
....
</widget>
config-file:配置文件 chcp.json 从服务器上加载的路径(必须的配置项)
auto-download:是否自动下载热更新代码,默认是 true
auto-install:是否自动安装热更新代码,默认是 true
native-interface:当前 native side 的版本号
6、将www文件放到服务器
将项目的www文件夹放到服务器上,且服务器要支持htpp访问,且访问不需要任何权限,然后重启app,就可实现App的web内容代码的热更新了。
需要注意的是www文件在服务地地址一定要与"content_url":"http://************/cordova/www"和config.xml中<config-file url="https://************/cordova/www/chcp.json" />填写的地址一致。
网友评论