应用程序使用离子部署下载并更新最新代码时是否可能显示消息?

时间:2019-05-03 13:12:21

标签: ionic-framework ionic-appflow

我使用自动更新方法通过ionic pro来更新应用程序,问题是当互联网连接速度慢时,该应用程序花费了更多时间来更新应用程序,启动画面显示了很长时间。

用户认为该应用程序存在问题,并挂在初始屏幕上。

有什么方法可以在启动屏幕上更新应用程序时显示消息吗? 至少用户会知道该应用程序正在更新。

<plugin name="cordova-plugin-ionic" spec="5.3.0">
        <variable name="APP_ID" value="xxxxxx" />
        <variable name="CHANNEL_NAME" value="Production" />
        <variable name="UPDATE_METHOD" value="auto" />
        <variable name="UPDATE_API" value="https://api.ionicjs.com" />
        <variable name="MAX_STORE" value="2" />
        <variable name="MIN_BACKGROUND_DURATION" value="30" />
</plugin>

1 个答案:

答案 0 :(得分:0)

我认为不可能在初始屏幕上显示更新。但是可以显示更新处理。这是完整的代码给您。

Pro.deploy.checkForUpdate().then((update) => {
      console.log(update);
      if (typeof update !== 'undefined') {
        if (update.available) {
          let alert = self.alertCtrl.create({
            title: 'Update Available',
            message: 'There is an update available. Would you like to get it?',
            buttons: [
              {
                text: 'Cancel',
                role: 'cancel'
              },
              {
                text: 'Ok',
                handler: () => {
                  this.performManualUpdate();
                }
              }
            ]
          });
          alert.present();

        }
      }
    });

async performManualUpdate() {
    try {
        let loader = this.loadingCtrl.create({
          content: "Updating...",
        });
        loader.present();

      await Pro.deploy.downloadUpdate((progress) => {
        this.downloadProgress = progress;
      })
      await Pro.deploy.extractUpdate();
      await Pro.deploy.reloadApp();
      loader.dismiss();

    } catch (err) {
      console.log(err);
    }
  }