关于Cordova热更新的教程很多。最近搞的时候发现github上面已经弃库了。但是也不影响我们的使用。
Cordova热更新插件:https://github.com/nordnet/cordova-hot-code-push
Cordova热更新工具:https://github.com/nordnet/cordova-hot-code-push-cli
在开始之前,你要在服务器配置好一个静态文件托管。创建好你要存放
1.安装Cordova热更新工具
npm install -g cordova-hot-code-push-cli
//cd到Cordova项目目录
2.安装Cordova热更新插件
cordova plugin add cordova-hot-code-push-plugin
3.初始化热更新插件
cordova-hcp init
这里需要填写很多东西,不懂的可以直接回车,新手注意的已经标记*
*Project name: 你现在的项目名称所需
Amazon S3 Bucket name:亚马逊什么什么的名字
Amazon S3 region: 亚马逊什么什么
iOS app identifier: 应用程序商店的应用程序ID
Android app identifier: 应用的下载地址
*Update method: 何时执行更新
start: 在启动应用程序时更新
resume: 在恢复应用程序时更新(cordova默认)
*now: 从服务器加载更新后立即安装 (我们选这个)
4.配置服务器路径
打开cordova项目目录中的config.xml
修改或者添加这一段配置<chcp>标签
5.打包www应用
因为我用的是vue,所以把build出来的dist复制到Cordova项目中的www中,然后构建项目
cordova-hcp build
www目录里面会生成两个文件
6.把www中的文件上传到设置好的服务器目录
7.构建安卓应用,这一次构建的app以后不用再打包。可以直接热更新(IOS自理)
cordova build android
8.安装apk打开就可以启动时自动更新
以后更新只要是只更新web内容,都可以只用 cordova-hcp build,然后上传到服务器,重新打开app就可以自动更新了
关于自动检查更新
我在vue中app.vue中的mounted中加入一个定时器,添加一下检查更新代码,这样就可以实现不重启app实现更新
let _vue = this;
try {
chcp.fetchUpdate(function(error, data) {
if (!error) {
// alert("有更新");
setTimeout(() => {
chcp.installUpdate(function(error) {
_vue.$toast("更新完成");
})
}, 3000)
} else {
// alert("当前是最新版本");
}
})
} catch (err) {
alert(err)
}