@heybox/hb-sdk API Reference - v0.9.5
    正在准备搜索索引...
    • 执行一条任意小黑盒客户端协议。

      暂不对外开放。 device.executeProtocol() 与 appProtocol 权限当前仅为预留能力, 不提供开发者申请入口;请勿在对外发布的小程序中依赖此 API。本地临时授权不代表对外开放。

      参数

      • protocol: ExecuteProtocolInput

        完整协议字符串(如 heybox://<encodeURIComponent(JSON)>)或包含 protocol_type 的 JSON 协议对象。

      返回 Promise<void>

      协议投递成功后 resolve undefined。成功只表示已交给 Host 投递,不表示协议业务 动作已经完成;协议自身的业务返回值与回调不会转发给调用方。

      HbMiniProgramSDKError INVALID_PARAMS:输入既不是非空字符串,也不是带非空 字符串 protocol_type 的 JSON 可序列化对象(含函数、symbol、BigInt、非有限数字或循环 引用时会失败),此时不会产生任何投递。

      HbMiniProgramSDKError PERMISSION_NOT_IN_SNAPSHOT / PERMISSION_DENIED:当前运行快照 缺少 appProtocol,或该权限未启用/未获平台批准;不会产生协议副作用。

      HbMiniProgramSDKError METHOD_FORBIDDEN / METHOD_NOT_FOUND:当前 Host 未 开放或尚不认识通用协议执行能力;旧 PC Host 属于此分支。Host 明确拒绝的协议也可能映射为 不支持错误。

      HbMiniProgramSDKError 其它握手、bridge 超时、Runtime 销毁与 Host 投递失败会保留 对应错误码。底层明确投递失败时一定 reject,不会把失败当作成功。

      最高危险等级。 该 API 与 appProtocol 权限均为当前最高危险等级 high:平台批准后, 该入口可以执行任意小黑盒协议,并绕过其他 SDK 能力权限及其专用授权流程(例如网络类协议 不再要求 network,读取用户资料不再要求 userInfo)。appProtocol 只作用于 device.executeProtocol(),不会让其它 SDK 方法免除自身权限。底层协议工具、客户端与操作 系统原本的支持范围、可信手势与执行规则继续生效;未获批准或未声明的调用不会产生任何副作用。

      SDK 不维护协议类型白名单,也不把对象重组为 navigation.openAppPage 的目标联合;字符串与对象都交给各端已有协议实现处理,因此各端实际支持的协议范围由已有工具 决定,移动端与 PC 不保证逐条一致。本方法不自动重试,避免副作用协议被重复执行。

      本地调试时可在 hb-sdk dev 中声明 appProtocol,经 Host 确认后获得当前 Dev Session 的临时 授权;临时授权不代表平台批准,remote deploy 与生产构建仍按线上批准执行。

      import hbSDK from '@heybox/hb-sdk'

      // 自行构造协议对象。
      await hbSDK.device.executeProtocol({
      protocol_type: 'openRouterPath',
      path: '/game/detail',
      params: { app_id: '570' },
      })

      // 后端下发的完整协议字符串也可直接传入。
      const protocol = { protocol_type: 'openRouterPath', path: '/game/detail', params: { app_id: '570' } }
      await hbSDK.device.executeProtocol(`heybox://${encodeURIComponent(JSON.stringify(protocol))}`)

      0.9.1

      android

      ios

      ohos

      windows

      macos

      android none

      ios none

      ohos none

      windows none

      macos none