app端是nvue/vue3
<web-view :src="webviewdata" ref="webview" style="width:750+'rpx';height:1000+'rpx'"@onPostMessage="handlePostMessage" ></web-view>
app端触发webview下H5的这里面这个方法pushMessage()进行通讯
this.$refs.webview.evalJs(`pushMessage()`);
H5端是uniapp vue2编译的H5的
uniapp H5端 pushMessage()这个方法放在哪里,
window.pushMessage()
function pushMessage()
我放在app.vue /页面<script></script> /methods:{} /main.js 这个地方都收不到app端发过来得消息
我百度搜索 到这个方法
this.$refs.webview.evalJs("document.body.style.background ='#00FF00'");
这个方法是能改变webview下H5的背景颜色的,证明this.$refs.webview.evalJs()这个方法是可以走通的,
但是就是触发不了uniapp编译H5下面的pushMessage()方法,我没学过H5 百度搜索出来的方法都是放在原生H5里面,在uniapp 编译H5 我不知道放在哪里,大哥大姐 给我说一下放在哪里
2 个回复
DCloud_UNI_WZF
evalJs 的作用域是全局作用域,所以你可以把 pushMessage() 放到全局,也就是window下
35自学编程 (作者) - 能成否
问题已解决
这个方法在拼接字符串的时候pushMessage()里面要加‘’单引号或双引号
之前写法(错误写法)
正确写法
uniapp h5 当前页这样放就能接收到app传递给h5的data