plus.webview.create()创建的webview 怎么接受网页发送的postMessage数据或者nvue中怎么获取web-view组件的实例,现在的问题是,用标签形式的web-view在nvue中拿不到实例,所以就没法跟html通信,如果用plus.webview.create()的话,又不能实现对postMessage的监听,所以现在搞的很尴尬。
w***@126.com
- 发布:2020-04-13 22:18
- 更新:2022-11-11 23:59
- 阅读:5378
9 个回复
w***@126.com (作者)
@DCloud_UNI_HDX
DCloud_uni-ad_HDX
nvue web-view 使用 onPostMessage
-参考文档 https://uniapp.dcloud.io/component/web-view
-示例代码 https://github.com/dcloudio/hello-uniapp/tree/master/pages/component/web-view
w***@126.com (作者)
是用web-view但是我拿不到web-view组件的实例啊,我想通过实例向html中运行js,但是拿不到对象就没法运行js了
2020-04-14 12:02
w***@126.com (作者)
不论是plus.webview.currentWebview() 还是 this.$scope.$getAppWebview()都获取不到web-view实例的,包括getCurrentPages()都试了,拿不到正确的实例
2020-04-14 12:07
DCloud_uni-ad_HDX
回复 w***@126.com: 使用 this.$refs.webview1 获取实例
2020-04-14 12:24
Kindi丶
回复 w***@126.com: 就算获取到 webview 的实例 也无法监听网页发来的消息。
2020-04-14 13:10
w***@126.com (作者)
回复 DCloud_uni-ad_HDX: 使用this.$refs.webview1是能获取到实例的,不过nvue中的 运行js的方法是 evalJs,而plus.webview中运行js的方法是evalJS 一个s是大写,一个s是小写,所以导致运行js的时候会报没有evalJS这个方法
2020-04-14 13:30
Kindi丶
https://ask.dcloud.net.cn/question/91867
这是我之前问的问题
@DCloud_App_Array 说 :如果是使用 plus.webview.create 创建的Webview窗口,目前还不支持相互通讯。
w***@126.com (作者)
<web-view ref="webview1" @onPostMessage=""></web-view>
this.$refs.webview1.evalJs("document.body.style.background ='#00FF00'");
这个是有效的
2020-04-14 13:42
Kindi丶
回复 w***@126.com: 你说的大小写问题我注意到了,this.$refs.webview1 拿到的并不是plus.webview的窗口对象,具体有哪些方法还不清楚,就我测试的很多plus.webview里面的方法都是没有的
2020-04-14 13:47
w***@126.com (作者)
回复 Kindi丶: wv=plus.webview.create()就已经返回webview的对象了,如果你要是用postMessage这个事件,就用<web-view>这个标签来创建web-view
2020-04-14 13:54
Kindi丶
回复 w***@126.com: 乱了,plus.webview.create()可以返回webview的对象没问题,只是无法监听网页消息。
<web-view> 组件 通过 ref 获取的 不是 plus.webview 的webview实例对象。https://www.html5plus.org/doc/zh_cn/webview.html#plus.webview.WebviewObject这里的方法都没办法调用,并不是大小写的问题。而是他们本身就不是同一个对象。
2020-04-14 14:22
w***@126.com (作者)
回复 Kindi丶: 可能是实现没对齐的问题
2020-04-14 17:36
喜欢技术的前端 - QQ---445849201
请教一下 plus.webview.create() 本地的url 怎么写呢??我在hybrid/html/index.html
1***@qq.com
我也遇到这个问题,请问有解决吗?
喜欢技术的前端
请教一下 plus.webview.create() 本地的url 怎么写呢??我在hybrid/html/index.html
2020-07-03 10:45
1***@qq.com
回复 喜欢技术的前端: /hybrid/html/index.html
2020-07-03 15:06
喜欢技术的前端 - QQ---445849201
好的,我试试,感谢
9***@qq.com
create创建的webview怎么在webview页面传递消息给uni呢,我需要传递事件重新设置webview的宽度
Kindi丶
https://ask.dcloud.net.cn/question/91867
这里面已经回复了,无法通信。
2020-07-10 14:49
1***@qq.com
ios使用 https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js 报错 Script error.filename:lineno:0
这个怎么办
DCloud_uni-ad_HDX
对比下hello uni-app 示例代码,或提供测试工程
2020-08-03 11:25
FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866
官方WebView扩展、H5与原生交互双向通信传值、js注入、支持设置plus、vue、nvue里的WebView:https://ext.dcloud.net.cn/plugin?id=9832