可选options: VibratePayload可选的语义强度与 Host 调度延迟;省略、JavaScript null 或传空对象时使用
intensity: 'light'、delay: 0。
Host 接受并完成本次调用后 resolve undefined;不会等待 delay 倒计时或
物理反馈结束,也不会返回实际强度、时长或是否被系统抑制。
HbMiniProgramSDKError INVALID_PARAMS:除兼容 null 外的 options 不是对象、包含未知字段、
intensity 不是 light / medium / heavy,或 delay 不是 0 至 5000 的整数。
HbMiniProgramSDKError METHOD_FORBIDDEN:当前 Host 未开放震动能力;新 PC
Host 的 Windows / macOS 桌面环境属于此分支。Host 无法支持请求形状时可返回
REQUEST_UNSUPPORTED。其他握手、bridge 超时与 Host 调用失败会保留对应错误码。
该 API 无需在 package.json#heybox.permissions 中声明权限,也不要求平台批准、用户
授权或可信用户手势。Runtime 不对连续调用增加频率限制或合并策略;每次合法调用都会
交给 Host,但 Host 或操作系统仍可能节流、合并或忽略反馈。
移动 Host 会将 light、medium、heavy 映射到平台可用的反馈等级,并将 delay
交给平台调度。等级不是精确马达参数,delay 也不是计时器;不要用 Promise 完成时点、
震动强度或触感推进业务状态、安全确认或无障碍信息。
震动只提供触觉反馈,不会显示文案、Toast、Loading 或错误提示。需要可见反馈时应独立
调用 ui.showToast;
桌面环境可在震动返回 METHOD_FORBIDDEN 时降级为 Toast,但两次调用拥有独立的 Promise
与失败结果。
import hbSDK, { HbMiniProgramSDKError } from '@heybox/hb-sdk'
try {
await hbSDK.device.vibrate({ intensity: 'medium', delay: 120 })
} catch (error) {
// 桌面 Host 没有触觉反馈时,改用可见反馈。
if (error instanceof HbMiniProgramSDKError && error.code === 'METHOD_FORBIDDEN') {
await hbSDK.ui.showToast({ message: '操作完成', status: 'success' })
} else {
throw error
}
}
请求 Host 调度一次触觉震动反馈。