useBridgeMessage
Hybrid Bridge 消息通信:小程序 web-view 与 App webview 内向宿主 postMessage。
前置依赖
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.vue.ref | Vue ref | 内部状态 |
deps.getWx | () => any | 微信 JSSDK / miniProgram |
deps.setTimeout | 定时器 | 超时与重试 |
deps.window / navigator 等 | PlatformDeps | 见 postBridgeMessage |
函数签名
typescript
function useBridgeMessage(deps: UseBridgeMessageDeps): {
isInWechatMiniprogram: () => boolean
isInAppWebview: () => boolean
postBridgeMessage: (payload, options?) => Promise<void>
// … 见源码完整返回
}
interface UseBridgeMessageDeps extends PlatformDeps {
vue: { ref: <T>(value: T) => { value: T } }
getWx: () => any
setTimeout: (callback: () => void, ms: number) => any
}参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
deps | UseBridgeMessageDeps | 是 | 平台检测 + Bridge 发送依赖 |
返回值
| 字段 | 说明 |
|---|---|
isInWechatMiniprogram | 是否微信小程序 web-view |
isInAppWebview | 是否 uni/plus App 壳 |
postBridgeMessage | 封装 postBridgeMessage |
工作原理
- 通过
getWx().miniProgram判断小程序环境。 - 通过
window.uni/window.plus判断 App webview。 - 发送时组合
createBridgeMessage与postBridgeMessage,支持 transfer page 等选项。 - 服务端渲染时
isServer()为 true 则环境检测均为 false。
异常
发送失败由底层 postBridgeMessage 抛出或 reject,见 hybrid 模块文档。