####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); } ); }
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于