Skip to content

useBridgeMessage

Hybrid Bridge 消息通信:小程序 web-view 与 App webview 内向宿主 postMessage。

前置依赖

参数名类型说明
deps.vue.refVue ref内部状态
deps.getWx() => any微信 JSSDK / miniProgram
deps.setTimeout定时器超时与重试
deps.window / navigatorPlatformDepspostBridgeMessage

函数签名

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
}

参数

参数名类型必填说明
depsUseBridgeMessageDeps平台检测 + Bridge 发送依赖

返回值

字段说明
isInWechatMiniprogram是否微信小程序 web-view
isInAppWebview是否 uni/plus App 壳
postBridgeMessage封装 postBridgeMessage

工作原理

  1. 通过 getWx().miniProgram 判断小程序环境。
  2. 通过 window.uni / window.plus 判断 App webview。
  3. 发送时组合 createBridgeMessagepostBridgeMessage,支持 transfer page 等选项。
  4. 服务端渲染时 isServer() 为 true 则环境检测均为 false。

异常

发送失败由底层 postBridgeMessage 抛出或 reject,见 hybrid 模块文档。