使用 SDK

添加 SDK 后,要将升级检测接入鸿蒙客户端,还需完成以下步骤:

  1. 检测新版本:在代码中调用 SDK 接口方法检查是否有新版本可升级。

  2. 配置灰度白名单:设置更新提示、灰度等选项。

  3. 线上发布:打包生成 .app 安装文件,并发布新版本。

检测新版本

升级检测 SDK,提供能够检查应用是否可更新的接口文件,代码如下:

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

interface upgradeRes{
 resultStatus:AliUpdateTypeEnum, // 升级类型
 memo:string, //
 downloadURL:string, // 新包下载地址
 newestVersion:string, // 新包的版本号
 guideMemo:string, // 新包更新描述信息
 fullMd5:string, // 新包的MD5
 fileSize:string, // 新包的size
 upgradeVersion:string, // 新包的版本号
 netType:string, // 此次请求的网络类型
 userId:string, // 此次请求的userID
 error:Error
}

export default class MPUpgradeService {
 /**
 * 单次提醒时的时间间隔,单位为天,默认为3
 */
 public static defaultUpdateInterval:number=3

 /**
 * 主动检查是否有更新,返回更新接口的rpc请求结果
 */
 public static async checkNewVersion():Promise<upgradeRes|null>

 /**
 * 主动检查是否有更新,如有新版本直接弹框提示
 */
 public static checkNewVersionAndShow()

}

开发者可在应用启动完成后,调用相应接口检查应用是否可更新。建议在首页出现后调用,以免影响 App 启动速度。根据是否自动弹框展示升级提示信息,为您提供以下两种调用方式:

  • 使用 mPaaS 默认弹框展示升级提示信息。代码如下:

    import {MPUpgradeService} from '@mpaas/upgrade'
    
    MPUpgradeService.checkNewVersionAndShow()
  • 若 mPaaS 提供的弹框样式不满足您的需求,可调用以下接口获取升级信息,自定义 UI 进行展示:

    import {MPUpgradeService} from '@mpaas/upgrade'
    
    MPUpgradeService.checkNewVersion().then((response)=>{
        let str = JSON.stringify(response)
        AlertDialog.show(
          {
            title: '升级检测结果',
            message: str,
            autoCancel: true,
            offset: { dx: 0, dy: -20 },
            gridCount: 3,
            confirm: {
              value: '确认',
              action: () => {
                console.info('upgrade result',response)
              }
            },
            cancel: () => {
              console.info('Closed callbacks')
            }
          }
        )
      })
    })

配置灰度白名单

要使用发布管理中的白名单灰度功能,请确保服务端已获取客户端的唯一标识。客户端需要在调用升级检测接口前,调用框架的接口设置用户的唯一标识,根据应用实际情况,在 userId 方法中返回 App 的唯一标识,例如用户名、手机号、邮箱等。

MPFramework.instance.userId = 'hexi'

mPaaS 控制台配置白名单的具体步骤,请查看 白名单管理

线上发布

使用发布平台的发布管理功能,发布新版本。具体流程请参考 harmony 发布管理手册。

升级模式

在 mPaaS 控制台创建发布任务时,可选择升级模式,主要包含以下三种:

  • 单次提醒:当 mPaaS 控制台发布新版本后,客户端调用一次版本升级接口,在静默周期内只弹框一次,以避免打扰用户。此升级模式适用于新版本刚上线引导用户升级的场景。

    • 默认的静默期为 3 天,即 3 天内只能提醒用户一次。
    • 若需修改默认值,可在调用升级检测接口前设置以下属性:

    MPUpgradeService.defaultUpdateInterval = 1
  • 多次提醒:当 mPaaS 控制台发布新版本后,客户端调用一次版本升级接口,就弹出一个提示框。此升级模式适用于新版本上线一段时间后,尽快引导用户升级到新版的场景。

  • 强制提醒:当 mPaaS 控制台发布新版本后,客户端调用一次版本升级接口,就弹出一个提示框,且无取消按钮,即若不升级则不可使用 App。此升级模式适用于下线客户端旧版本、强制用户升级到新版本的场景。