3***@qq.com
3***@qq.com
  • 发布:2019-06-06 09:41
  • 更新:2022-04-04 12:42
  • 阅读:6126

uni-app应用怎么向webview中发送消息?

分类:uni-app

只能webview中的html向应用发送消息吗?那有什么办法让两者互通数据?

2019-06-06 09:41 负责人:无 分享
已邀请:
雨时节

雨时节

在webview中写好对应的方法.
在uniapp中直接注入JS.例如:

webview.evalJS("ajaxRequest('"+requestUrl+"','"+dataJson+"')");

记得这个requestUrl 与dataJson都是字符串

SimpleJalon

SimpleJalon - 个人承接PHP、uniapp项目,有案例,联系QQ 615773740,不接受外地工作,可付费提供技术支持。添加QQ时务必备注来意以及添加渠道,渠道可以写:`uniapp`

+11111

3***@qq.com

3***@qq.com (作者)

没有人给给解决下吗

  • SimpleJalon

    这个我之前研究过了 vip 群 有手段避开,但是数据多的时候不怎么靠谱,所以还得官方有个方法。

    2019-06-06 10:00

  • 雨时节

    回复 SimpleJalon: 我的方法不好吗?

    2019-06-06 10:01

  • 3***@qq.com (作者)

    回复 雨时节: 什么方法?

    2019-06-06 10:03

  • 雨时节

    回复 3***@qq.com: 下面的博客地址:https://blog.coder666.cn/2019/05/31/blog28/以及下面的回复

    2019-06-06 11:31

雨时节

雨时节

webview向uniapp发消息,请参看我的博客:
https://blog.coder666.cn/2019/05/31/blog28/
数据长度 受一定的限制,不过一般的数据长度也达不到那个临界值吧.

h***@sina.com

h***@sina.com

写在前面:重要!h5页面(我用的vue),一定要用alert查看结果,console的日志会显示到hbuilerx的控制台里,结果会一直为空(坑死),我的版本是2.9.5。

从h5向uniapp传值,网上的两种方法确实都可以,url加问号传参,或者plus.webview.create(url, id, style, {data:{}})的第四个参数传参,alert能直接打印出来传递的参数

步骤一、uniapp代码:

let wv = plus.webview.create( 'http://www.baidu.com/#/clientEdit?aa=1&bb=2','mendMerchant', {
top:'66px',
height:'92%',
},{data:this.userInfo}) //this.userInfo是我要传的对象,不用data键值对的方式传的话,h5接收后会是多个字段,而非一个对象
let currentWebview = this.$mp.page.$getAppWebview()
currentWebview.append(wv);

步骤二、

h5代码 (weiview src引用的h5页面代码,h5我用的vue,另外,js原生支持plus对象,不需要引入外部资源支持):

方式一,获取plus.webview.create第四个参数传来的值:

document.addEventListener("plusready",function (){
alert(JSON.stringify(plus.webview.getWebviewById("mendMerchant").data)) //data与uniapp里定义的键名保持一致,那里也是定义的data:this.userInfo
},false);

方式二(url获取):alert(this.$route.query.aa)

亲测可以,qq 372094494,有问题可以交流

l***@163.com

l***@163.com

参考这个,有完整例子,https://mp.csdn.net/mp_blog/creation/editor/123950821

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