uniapp webview 实时给h5发送消息
时间: 2023-08-31 19:09:58 浏览: 170
在 uniapp 中使用 webview 组件可以实现嵌入网页的效果,同时也可以通过 webview 组件的 `plusInstance` 属性获取到原生 plus webview 对象,从而实现与嵌入网页的通信。
具体来说,可以通过 `plusInstance` 属性获取到原生 webview 对象后,调用其 `postMessage` 方法向网页发送消息,网页接收到消息后可以通过 `window.addEventListener('message', function(event) {})` 监听消息,并根据消息类型进行相应的处理。
以下是一个示例代码:
```vue
<template>
<web-view
ref="webView"
@loaded="onWebViewLoaded"
/>
</template>
<script>
export default {
methods: {
onWebViewLoaded() {
const webView = this.$refs.webView
const plusWebView = webView.$el.contentWindow.plus.webview
// 向网页发送消息
plusWebView.postMessage({ type: 'hello' })
// 监听网页发送的消息
window.addEventListener('message', event => {
if (event.data.type === 'world') {
console.log('Received message from web page:', event.data)
}
})
}
}
}
</script>
```
在上述示例代码中,我们首先通过 `this.$refs.webView` 获取到 webview 组件实例,然后通过 `webView.$el.contentWindow.plus.webview` 获取到原生 plus webview 对象,接着调用 `postMessage` 方法向网页发送消息,最后通过 `window.addEventListener` 监听网页发送的消息。
阅读全文