####4.Android 代码热更新的实现
demo:https://github.com/Dellos7/example-cordova-code-push-plugin
npm 文档:https://www.npmjs.com/package/cordova-plugin-code-push#syncoptions
配置很好配置,主要就是更新返回的状态码及流程的处理,官方 demo 没写,只能去源码里面找...
热更新命令:ionic cordova prepare android --prod
+code-push release codepush-ionic-test-android ./platforms/android/assets/www/ 0.0.1 --description "开放扫描功能" -d "Production"
返回码 | 返回码释义 |
---|---|
0 | 应用程序是最新的 |
1 | 更新是可用的,它已被下载,解压缩并复制到部署文件夹,在使用 SycStasUs.UpDeaTyEnter 调用回调完成后,应用程序将重新加载更新的代码和资源 |
2 | 可选的更新是可用的,但用户拒绝安装它。没有下载更新 |
3 | 同步操作期间发生错误。这可能是与服务器通信、下载或解压缩更新时的错误。控制台日志应该包含有关发生的事情的更多信息。在这种情况下没有应用任何更新 |
4 | 正在进行中的同步,因此此同步尝试已中止 |
5 | 中间状态-插件即将检查更新 |
6 | 中间状态-用户对话框即将被显示。只有在启用用户交互时才会报告此状态 |
7 | 中间状态-更新包即将被下载 |
8 | 中间状态-更新包即将安装 |
//参考网址:https://www.npmjs.com/package/cordova-plugin-code-push#syncoptions
//自己看源码吧,demo不可信
checkCodePush() {
this.codePush.sync({
updateDialog: {
appendReleaseDescription: true,
descriptionPrefix: "\n\n更新说明:\n",
optionalInstallButtonLabel: "安装",
optionalIgnoreButtonLabel: "忽略",
optionalUpdateMessage: "我们发布了一些功能的更新与bug修复",
updateTitle: "更新"
},
installMode: InstallMode.IMMEDIATE
}, (downloadProgress) => {
if (downloadProgress) {
// Update "downloading" modal with current download %
// alert("Downloading " + downloadProgress.receivedBytes + " of " + downloadProgress.totalBytes);
//console.log(111);
}
}).subscribe(
(data) => {
if (data == 7) {
this.utils.showLoading("正在下载更新,请稍后...", 100000);
}
//0:应用程序是最新的
//1:*更新是可用的,它已被下载,解压缩并复制到部署文件夹,在使用SycStasUs.UpDeaTyEnter调用回调完成后,应用程序将重新加载更新的代码和资源。
//2:可选的更新是可用的,但用户拒绝安装它。没有下载更新。
//3:同步操作期间发生错误。这可能是与服务器通信、下载或解压缩更新时的错误。控制台日志应该包含有关发生的事情的更多信息。在这种情况下没有应用任何更新。
//4:正在进行中的同步,因此此同步尝试已中止。
//5:中间状态-插件即将检查更新。
//6:中间状态-用户对话框即将被显示。只有在启用用户交互时才会报告此状态。
//7:中间状态-更新包即将被下载。
//8:中间状态-更新包即将安装。
// 5678150
//测试数据
},
(err) => {
console.log('CODE PUSH ERROR: ' + err);
}
);
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于