首页 > 解决方案 > 是否可以在应用程序使用 ionic deploy 下载和更新最新代码时显示消息?

问题描述

我使用自动更新方法使用 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>

标签: ionic-frameworkionic-appflow

解决方案


我认为不可能在启动画面上显示更新。但可以显示更新处理。这是给你的完整代码。

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);
    }
  }

推荐阅读