w***@126.com
w***@126.com
  • 发布:2020-04-13 22:18
  • 更新:2022-11-11 23:59
  • 阅读:5378

plus.webview.create()创建的webview 怎么接受网页发送的postMessage数据?

分类:uni-app

plus.webview.create()创建的webview 怎么接受网页发送的postMessage数据或者nvue中怎么获取web-view组件的实例,现在的问题是,用标签形式的web-view在nvue中拿不到实例,所以就没法跟html通信,如果用plus.webview.create()的话,又不能实现对postMessage的监听,所以现在搞的很尴尬。

2020-04-13 22:18 负责人:无 分享
已邀请:
w***@126.com

w***@126.com (作者)

@DCloud_UNI_HDX

DCloud_uni-ad_HDX

DCloud_uni-ad_HDX

  • 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丶

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

1***@qq.com

我也遇到这个问题,请问有解决吗?

喜欢技术的前端

喜欢技术的前端 - QQ---445849201

好的,我试试,感谢

9***@qq.com

9***@qq.com

create创建的webview怎么在webview页面传递消息给uni呢,我需要传递事件重新设置webview的宽度

  • Kindi丶

    https://ask.dcloud.net.cn/question/91867

    这里面已经回复了,无法通信。

    2020-07-10 14:49

1***@qq.com

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

FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866

该问题目前已经被锁定, 无法添加新回复