Host 关闭原语接受请求后 resolve undefined;这不是“页面仍可继续执行”的确认。
HbMiniProgramSDKError INVALID_PARAMS 表示通过底层协议传入了非空 payload;
App-facing close() 本身没有参数。
HbMiniProgramSDKError METHOD_FORBIDDEN / METHOD_NOT_FOUND 表示当前 Host
未实现或未开放关闭原语;REQUEST_UNSUPPORTED 表示 Host 无法执行当前关闭请求。
HbMiniProgramSDKError RUNTIME_DESTROYED / RUNTIME_UNAVAILABLE /
SDK_DESTROYED 表示 Runtime、容器或 SDK 已进入终态。SDK 握手失败或 Host 在调用超时内
未接受请求时,还会返回对应握手错误码或 REQUEST_TIMEOUT。其他 Host 关闭错误保留其
SDK 错误码。
该方法在 android、ios、ohos、windows、macos 上公开,但实际 Host 必须提供
presentation.close 原语;缺失时 fail closed。调用无需 package.json#heybox.permissions
声明、平台批准、用户授权或可信用户手势。
Host 接受请求后可以立即销毁 iframe 和当前 JavaScript 上下文。不要依赖 await close()
后的语句、timer、微任务、事件监听或内存状态完成关键工作;当前上下文销毁后,pending
与后续 SDK 请求会失败。每次调用都会直接转发给 Host,不是可查询的关闭状态或幂等事务。
需要保留的数据必须在调用前写完并等待成功,例如先 await
storage.setStorage 或业务服务端请求,再调用本方法。
storage.setStorage 自身要求 storage 权限;这不会让 navigation.close 也需要该权限。
Host 销毁当前运行环境时会尽力派发 on('unload'),但
unload 不重放且可能来不及送达,只适合停止轮询、释放观察者等快速幂等清理,不能作为
最后一次持久化机会。需要保留容器但创建新页面上下文时使用
navigation.reload,不要把 close 当作 reload。
请求宿主关闭当前小程序容器。