8***@qq.com
8***@qq.com
  • 发布:2022-05-31 17:13
  • 更新:2023-03-22 15:05
  • 阅读:4306

plus.webview.create双向通信终于找到办法了

分类:uni-app

plus.webview.create官方没有给出html向app通信的方案,折腾了两天终于成功了,哈哈哈哈

0 关注 分享

要回复文章请先登录注册

龙大婷

龙大婷

回复 7***@qq.com :
这种方法不会影响页面标题吗?
2023-03-22 15:05
BoredApe

BoredApe

回复 龙大婷 :
参考我在这两篇帖子中的回答:[https://ask.dcloud.net.cn/question/164402](https://ask.dcloud.net.cn/question/164402) [https://ask.dcloud.net.cn/question/165493](https://ask.dcloud.net.cn/question/165493)
2023-03-22 13:38
龙大婷

龙大婷

分享下怎么通讯的呗,大佬。
2023-03-22 11:37
露水

露水

回复 1***@qq.com :
const currentWebview = this.$scope.$getAppWebview();
var vw = currentWebview.children()[0];
vw.evalJS(
'uni.postMessage({xxx:"xxxxx"})'
2023-03-21 20:14
1***@qq.com

1***@qq.com

回复 露水 :
在嘛怎么搞
2023-02-20 23:12
dasensen

dasensen

回复 xzh :
这样的话 app有任何操作都会监听到,性能是不是不太好啊
2022-12-12 16:39
FullStack

FullStack

官方WebView扩展、H5与原生交互双向通信传值、js注入、支持设置plus、vue、nvue里的WebView:[https://ext.dcloud.net.cn/plugin?id=9832](https://ext.dcloud.net.cn/plugin?id=9832)
2022-11-11 23:51
m***@163.com

m***@163.com

回复 [已删除] :
没法通信
2022-07-15 15:37
7***@qq.com

7***@qq.com

nvue里面
this.wv = plus.webview.create("", "WKWebview", {
plusrequire: "none",
kernel: 'WKWebview',
'uni-app': 'none',
top: 100,
height: uni.getSystemInfoSync().screenHeight - 210
})
// 注意 一定要用WKWebview,UIWebview不支持titleUpdateEvent
//接收titleUpdateEvent
this.wv.addEventListener('titleUpdate', (e) => {
e.title就是H5页面发送过来的消息
}, false);

H5页面
document.title="你要发送的信息"
2022-07-13 11:57
[已删除]

[已删除]

我在父页面的时候挂载了一个方法
```js
uni.getChildOpt = function(data) {
console.log(data);
};
```
然后在webview页面里面
```js
let parentWv = plus.webview.currentWebview().opener();
parentWv.evalJS(`uni.getChildOpt(${JSON.stringify({a:1,b:2})})`);
```
我就是这样弄的
2022-07-12 14:59