Appearance
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 的共同起点。
| 应用能力 | Android | iOS | Harmony | PC | 发布状态 |
|---|---|---|---|---|---|
| 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_id | String | 是 | - | 待引导的用户标识,用于恢复或初始化当前 SDK 会话上下文。 |
tenant_id | Option<String> | 否 | - | 可选租户标识,用于多租户场景下隔离运行时初始化范围。 |
说明
请求对象由业务方传入,用于触发上层 SDK API 调用。平台 wrapper 可以按各自语言习惯封装参数对象,但字段语义必须与 RuntimeBootstrapRequest 保持一致。
输出
该接口成功后返回 RuntimeBootstrapResponse 业务结果,字段定义如下。
| 名称 | 数据类型 | 描述 |
|---|---|---|
session_id | String | 本次引导流程生成的会话标识。 |
account_id | String | 引导完成后绑定的当前账号标识。 |
token_state | String | 认证令牌的准备或校验状态,来自引导链中的 auth/runtime 协调结果。 |
version_state | String | 版本或快照恢复状态,用于标识当前 SDK 版本数据是否已完成恢复。 |
cache_state | String | 本地缓存对齐状态,用于表示缓存是否已准备就绪。 |
persistence_state | String | 本地持久层可用状态,用于表示存储能力是否已准备就绪。 |
overall_readiness | String | 整体可接入状态,表示本次引导后 SDK 是否已进入 ready 状态。 |
messages | Vec<String> | 引导过程返回的提示信息列表,例如 bootstrap 完成提示。 |
状态与前置条件
- 调用前置条件:
无 - 当前 SDK 状态要求:SDK 尚未初始化或需要重新建立运行时上下文。
- 调用成功后状态:调用成功后 SDK 进入 bootstrapped 状态,可继续发起 login 或只读状态检查类接口。
- 建议后续调用:
login
示例代码
平台调用示例
| 平台 | 正式入口 | 绑定方式 | 错误返回方式 |
|---|---|---|---|
| Android | com.robin.sdk.RobinSdk | kotlin-java-facade | result-error-object |
| iOS | RobinSdk | swift-facade | throws-result-enum |
| Harmony | RobinSdk | arkts-js-facade | result-code-object |
| PC | robin_sdk_bridge | native-bridge-facade | bridge-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 | 当前接口能力未开放,或当前发布范围不支持该调用。 | 检查接口是否已纳入当前发布范围,并确认目标平台已支持该能力。 |