webview官网文档:点击跳转
通过createWebviewContext或getElementById获取webview组件的上下文对象。
<template>
<web-view id="web-view" :src="srcUrl"></web-view>
</template>
<script setup>
const srcUrl = ref<string>('')
onLoad((options:OnLoadOptions)=>{
if(options['src']!=null){
srcUrl.value = options['src']!
}
})
onReady(()=>{
const wv = uni.getElementById('web-view') as UniWebViewElement | null
})
</script>使用evalJS(),API执行js
wv?.evalJS(`alert('say hello')`)webvie页面向应用发消息
首先页面引入uni提供的uni.webview.1.5.5.js
<script src="/js/uni.webview.1.5.5.js"></script>发消息postMessage,其他API请看官方文档
uni.webView.getEnv((res) => {
uni.postMessage({
data: {type:'oone',info:{...}}
})
});应用端监听消息
<template>
<web-view id="web-view" :src="srcUrl" @message="getMsg"></web-view>
</template>
<script setup>
const getMsg = (msg:UniWebViewMessageEvent)=>{
console.log(msg.detail);
}
</script>以上就是uni-app x,webvie页面与应用互相通讯的一种方法。