参考文章 https://blog.csdn.net/lovelyelfpop/article/details/50848524#javascript-module
1、cordova 工程目录添加热更新插件
cordova plugin add cordova-hot-code-push-plugin
2、cordova工程目录cordova-hcp.json文件,用于执行cordova-hcp build重新生成release版本时设置默认值,内容参考如下:
{
"autogenerated": true,
"update": "start",
"content_url": "***/www”
}
update 用于设置什么时候检测是否有资源更新文件,start表示app启动时
content_url 的值代表服务器上的资源文件路径,即完整的www目录
3、config.xml中配置如下代码:
<chcp>
<auto-downloadenabled="false"/>
<auto-installenabled="false"/>
<config-fileurl="***/www/chcp.json”/>
</chcp>
这里设置的都是不自动下载、不自动安装,都是通过后面js方法来进行控制
config-file指定的是用于判断资源是否有更新的chcp.json文件路径,应用启动后,会基于此路径到服务器获取最新的,并于本地的chcp.json文件做比较,通过release来判断
4、每次发版本之前,需要执行cordova-hcp build重新在www上生成chcp.json文和chcp.manifest文件
5、使用了热更新插件之后,如果要保证外壳整体更新,则需要改变config.xml上的version
6、版本检测js代码
ons.notification.confirm({
title: '小版本更新',
message: tips,
buttonLabels: ['取消', '确定'],
primaryButtonIndex: 1,
callback: function (index) {
switch (index) {
case 1:
$rootScope.showWaitModal("开始下载...");
chcp.fetchUpdate(function (error, data) {
if (error == null) {
$rootScope.showWaitModal("正在安装...");
chcp.installUpdate(function (error) {
$rootScope.hideWaitModal();
if (error == null) {
showAlert('安装更新完成...');
} else {
showAlert('安装更新失败...' + JSON.stringify(error));
}
});
} else {
$rootScope.hideWaitModal();
showAlert('下载更新失败...' + JSON.stringify(data));
}
});
break;
default:
console.log("取消安装更新...");
break;
}
}
});