@heybox/hb-sdk API Reference - v0.9.5
    正在准备搜索索引...
    • 隐藏当前全局 Loading。

      返回 Promise<void>

      Runtime 调用的 Host presentation.hideLoading operation 成功结束并返回 bridge 响应后, Promise 以 void resolve。返回值不说明此前是否存在 Loading,也不承诺等待 Host 的退出动画完成。

      HbMiniProgramSDKError 当前 Host 未开放 presentation.hideLoading 时以 METHOD_FORBIDDEN 拒绝;旧 Runtime 不认识 ui.hideLoading 时可返回 METHOD_NOT_FOUND。bridge、Runtime 卸载、请求超时或 Host operation 失败时抛出对应 SDK 错误;Host 明确表示当前请求不受支持时可返回 REQUEST_UNSUPPORTED。

      该方法不接收参数,无需在 package.json#heybox.permissions 中声明权限,也不要求可信用户手势。 它只请求隐藏 Host 当前持有的全局 Loading,不会关闭 Toast 或其他 UI 反馈。

      SDK 与 Runtime 都不维护 Loading 是否可见、展示次数、引用计数或调用栈。每次调用都会独立发送并 转发到 Host;连续调用不会在 Runtime 合并,也不需要按此前 showLoading() 的调用次数循环隐藏。 多个并发流程共用同一个全局 Loading 时,一个流程的 hideLoading() 可能隐藏另一个流程展示的 Loading,调用方需要在业务层协调所有权或自行维护计数。

      当前没有 Loading 时,行为由 Host 决定,公共契约不保证统一幂等:Browser Dev Host 会成功空操作, Mobile 与 PC Runtime 仍会把请求转发给实际 Host,由 Host 决定成功、空操作或报错。因此不要用 hideLoading() 的 resolve/reject 探测 Loading 是否可见,也不要据此推进业务状态。

      当当前异步流程拥有 Loading 时,应在 finally 中清理,使成功和失败路径都会尝试隐藏。 ui.showLoading() 的 dismissible: true 不提供用户关闭回调;即使用户 可能已经手动关闭,流程结束时仍可按 Host 语义调用本方法。若清理失败不能覆盖原始业务错误, 应在应用层单独捕获并记录清理错误。

      import hbSDK from '@heybox/hb-sdk'

      let loadingShown = false
      try {
      await hbSDK.ui.showLoading({ dismissible: false })
      loadingShown = true
      await saveChanges()
      } finally {
      if (loadingShown) {
      await hbSDK.ui.hideLoading()
      }
      }

      0.4.4

      android

      ios

      ohos

      windows

      macos

      android none

      ios none

      ohos none

      windows none

      macos none