在Android设备上的Cordova应用中进行代码推送自动回滚

时间:2019-01-03 07:36:41

标签: android cordova code-push

说明:

我在cordova项目中使用代码推送。在Android设备上,当我调用codePush.sync时,更新的软件包将被正确下载并安装(没有错误),并且可以看到所有更改。但是当我下次恢复使用该应用程序时,所有更改都将消失,并且该应用程序回滚到旧版本。

我如何同步:

if (window.codePush) {
  const InstallMode = window.InstallMode;
  window.codePush.sync(syncCallback, {
    deploymentKey: window.device.platform === 'Android' ? CODE_PUSH_KEY.android : CODE_PUSH_KEY.ios,
    installMode: InstallMode.IMMEDIATE
  });
}

我如何发布:

code-push release-cordova block-chain-android android --deploymentName ${environment} --des "${description}" --targetBinaryVersion "^2.0.0"

可能出了什么问题

cordova在不同的路径中运行不同的index.html。

首次安装该应用的时间:01-02 19:30:19.719 15422-15422 /? D / CordovaWebViewImpl:>>> loadUrl(file:///android_asset/www/index.html)

然后安装并重新启动更新: 01-02 19:31:55.424 15422-15422 /? D / CordovaWebViewImpl:>>> loadUrl(文件:/data/user/0/com.test.testApp/files/codepush/deploy/versions/62b60c3f481e89c83d5fd6d7f215133aa16bf800cde246f0453f073224e55e52/www/index.html)

最后,我们确实看到了更改,然后恢复了应用程序:01-02 19:32:18.029 15422-15422 /? D / CordovaWebViewImpl:>>> loadUrl(file:///android_asset/www/index.html)

相关版本:

  • cordova-android:6.4.0
  • cordova-plugin-code-push:1.11.16

下载并安装软件包后,我没有错过任何事情吗,例如tellCodePushToCopyIndexHtml

1 个答案:

答案 0 :(得分:0)

已解决。

我忘了像codePush.notifyApplicationReady()那样在deviceready中叫document.addEventListener('deviceready', () => { window.codePush.notifyApplicationReady() }, false);