Skip to content

bootstrap

最后更新时间 2026-04-17

bootstrap(options) 用于初始化 Robin SDK 运行时环境,加载基础配置并返回当前客户端的接入状态。

  • 接口标识:runtime.bootstrap
  • 请求类型:RuntimeBootstrapRequest
  • 当前状态:可接入

该接口是 Robin SDK 的统一接入起点。业务方在调用任何用户态或业务态能力前,应先完成运行时引导,确认 SDK 已具备后续登录和模块调用所需的基础环境。

注意事项

  • 该接口必须优先调用;未完成引导前,用户态与业务态接口均不应直接调用。
  • bootstrap 成功仅表示 SDK 运行时与基础能力已完成初始化,不代表用户已完成登录。
  • 如果返回整体状态不是 ready,业务方应根据返回状态先完成补偿或重试,而不是继续调用后续业务接口。
  • 当前实现阶段为 浅实现,当前可接入状态为 可接入
  • 当前方法已纳入 release/phase0 正式发布承诺。

支持说明

该接口用于四端统一初始化,是 Android、iOS、Harmony、PC 接入 Robin SDK 的共同起点。

应用能力AndroidiOSHarmonyPC发布状态
SDK Wrapper支持支持支持支持已纳入 release/phase0

发布基线:

  • android: Android 8.0+ (API 26)
  • ios: iOS 15+
  • harmony: HarmonyOS NEXT API 12+
  • pc: Host OS with supported native bridge runtime

输入

该接口接收 RuntimeBootstrapRequest 请求对象,字段定义如下。

名称数据类型是否必填默认值描述
user_idString-待引导的用户标识,用于恢复或初始化当前 SDK 会话上下文。
tenant_idOption<String>-可选租户标识,用于多租户场景下隔离运行时初始化范围。

说明

请求对象由业务方传入,用于触发上层 SDK API 调用。平台 wrapper 可以按各自语言习惯封装参数对象,但字段语义必须与 RuntimeBootstrapRequest 保持一致。

输出

该接口成功后返回 RuntimeBootstrapResponse 业务结果,字段定义如下。

名称数据类型描述
session_idString本次引导流程生成的会话标识。
account_idString引导完成后绑定的当前账号标识。
token_stateString认证令牌的准备或校验状态,来自引导链中的 auth/runtime 协调结果。
version_stateString版本或快照恢复状态,用于标识当前 SDK 版本数据是否已完成恢复。
cache_stateString本地缓存对齐状态,用于表示缓存是否已准备就绪。
persistence_stateString本地持久层可用状态,用于表示存储能力是否已准备就绪。
overall_readinessString整体可接入状态,表示本次引导后 SDK 是否已进入 ready 状态。
messagesVec<String>引导过程返回的提示信息列表,例如 bootstrap 完成提示。

状态与前置条件

  • 调用前置条件:
  • 当前 SDK 状态要求:SDK 尚未初始化或需要重新建立运行时上下文。
  • 调用成功后状态:调用成功后 SDK 进入 bootstrapped 状态,可继续发起 login 或只读状态检查类接口。
  • 建议后续调用:login

示例代码

平台调用示例

平台正式入口绑定方式错误返回方式
Androidcom.robin.sdk.RobinSdkkotlin-java-facaderesult-error-object
iOSRobinSdkswift-facadethrows-result-enum
HarmonyRobinSdkarkts-js-facaderesult-code-object
PCrobin_sdk_bridgenative-bridge-facadebridge-error-code

Android

来源:docs/examples/android/runtime-bootstrap.kt

kotlin
import com.robin.sdk.RobinSdk

suspend fun bootstrapSdk() {
    val result = RobinSdk.runtime.bootstrap(
        userId = "user-demo",
        tenantId = "tenant-demo"
    )

    if (!result.success) {
        println("bootstrap failed: code=${result.code}, message=${result.message}")
        return
    }

    val payload = result.payload
    println("bootstrap ok: readiness=${payload.overallReadiness}")
}

iOS

来源:docs/examples/ios/runtime-bootstrap.swift

swift
func bootstrapSdk() async {
    do {
        let payload = try await RobinSdk.runtime.bootstrap(
            userId: "user-demo",
            tenantId: "tenant-demo"
        )

        print("bootstrap ok: \(payload.overallReadiness)")
    } catch {
        print("bootstrap failed: \(error)")
    }
}

Harmony

来源:docs/examples/harmony/runtime-bootstrap.ets

ts
export async function bootstrapSdk() {
  const result = await RobinSdk.runtime.bootstrap({
    userId: 'user-demo',
    tenantId: 'tenant-demo'
  })

  if (result.code !== 0) {
    console.error(`bootstrap failed: code=${result.code}, message=${result.message}`)
    return
  }

  console.info(`bootstrap ok: readiness=${result.payload.overallReadiness}`)
}

PC

来源:docs/examples/pc/runtime-bootstrap.ts

ts
export async function bootstrapSdk() {
  const result = await robin_sdk_bridge.runtime.bootstrap({
    userId: 'user-demo',
    tenantId: 'tenant-demo'
  })

  if (result.code !== 0) {
    console.error('bootstrap failed', result)
    return
  }

  console.log('bootstrap ok', result.payload.overallReadiness)
}

错误码

错误码描述排查建议
invalid_argument输入参数无效或字段不符合接口要求。根据本文输入参数说明检查必填项、字段类型和字段格式。
action_not_enabled当前接口能力未开放,或当前发布范围不支持该调用。检查接口是否已纳入当前发布范围,并确认目标平台已支持该能力。