MpaasUpgradeCheck.ets 2.89 KB
import { MPUpgradeService } from '@mpaas/upgrade'
import { upgradeRes } from '@mpaas/upgrade/src/main/ets/t4/a'
import { AppUtils } from '../utils/AppUtils'
import { SPHelper } from '../utils/SPHelper'

export interface UpgradeTipContent {

  content: string
  newVersion: string
  downloadUrl: string
  forceUpgrade: boolean
}

export class MpaasUpgradeCheck {

  /// 默认提示框
  checkNewVersionAndShow() {
    try {
      MPUpgradeService.checkNewVersionAndShow()
    } catch (error) {
      console.log("mpaas upgrade fail", JSON.stringify(error))
    }
  }

  checkNewVersion(): Promise<UpgradeTipContent | null> {

    return new Promise((resolve, fail) => {
      MPUpgradeService.checkNewVersion().then((response)=>{
        let str = JSON.stringify(response)
        console.log("mpaas upgrade check", str)

        /*
        {
            "android64FileSize": 0,
            "downloadURL": "https://appgallery.huawei.com/#/app",
            "fileSize": 0,
            "fullMd5": "no md5",
            "guideMemo": "欢迎使用新版本",
            "isWifi": 0,
            "netType": "ALL",
            "newestVersion": "1.0.1",
            "resultStatus": 204,
            "silentType": 0,
            "upgradeVersion": "1.0.1"
        }*/

        let res = response as upgradeRes

        // AliUpgradeNewVersion = 201, /*当前使用的已是最新版本*/
        // AliUpgradeOneTime = 202, /*客户端已有新版本,单次提醒*/
        // AliUpgradeForceUpdate = 203, /*客户端已有新版本,强制升级(已废弃)*/
        // AliUpgradeEveryTime = 204, /*客户端已有新版本,多次提醒*/
        // AliUpgradeRejectLogin = 205, /*限制登录(已废弃)*/
        // AliUpgradeForceUpdateWithLogin = 206 /*客户端已有新版本,强制升级*/

        const currentAppVersoin = AppUtils.getAppVersionName()

        if (res.resultStatus == 201) {
          resolve(null)
          return
        }

        // 单次升级控制
        if (res.resultStatus == 202) {
          const oldOnceValue = SPHelper.default.getSync("upgradeOnceKey", false) as boolean
          if (true == oldOnceValue) {
            resolve(null)
            return
          }
          SPHelper.default.save("upgradeOnceKey", true)
        } else {
          SPHelper.default.save("upgradeOnceKey", false)
        }

        if (res.resultStatus == 202 || res.resultStatus == 204 || res.resultStatus == 206) {
          let content: UpgradeTipContent = {
            content: res.guideMemo,
            newVersion: res.upgradeVersion,
            downloadUrl: res.downloadURL,
            forceUpgrade: res.resultStatus == 206
          }
          resolve(content)
          return
        }

        resolve(null)
      }).catch((error: Error) => {
        console.log("mpaas upgrade fail", `name: ${error.name}, message: ${error.message}, \nstack: ${error.stack}`)
        fail("检测升级失败")
      })
    })
  }
}