雷峰
雷峰
  • 发布:2021-03-18 17:31
  • 更新:2024-11-07 16:07
  • 阅读:30802

webview使用uniapp项目开发无法使用uni.postMessage(踩坑经验分享)

分类:uni-app

1、使用uniapp项目写H5 webview,使用hello uniapp的模板,按照webview文档里的源码往template.h5.html里面写入相关内容。
2、引入的https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js脚本,它这个地方是个坑。你要手动改源码。uni.webview.js文件里面注册的就是uni对象。被uniapp项目自带的uni对象覆盖了,我就是把源码里面注册uni对象换了个名字(webUni)就好了。
END:这里把我自己改好的js文件贴上来,包括template.h5.html文件,可以直接使用webUni.postMessage方法。

31 关注 分享
老船长9999 zwzz 千羽羊驼 1***@163.com myforr 1***@139.com Huareu 1***@qq.com 4***@qq.com 言会咸 ai自由畅想 1***@qq.com 5***@qq.com DLO seabert 9***@qq.com 8***@qq.com 8***@qq.com wetyou DCloud_UNI_OttoJi 2***@qq.com Adlaw 套马杆的套子 3***@qq.cm 1***@qq.com 2***@qq.com 1***@qq.com 9***@qq.com 1***@qq.com 1***@qq.com 大力的罗大力

要回复文章请先登录注册

我愿你知道

我愿你知道

回复 2***@qq.com :
请问解决了吗?我也出现这问题了
2023-12-12 16:06
x***@163.com

x***@163.com

回复 小贤笔记 :
我记不太清了,我最后没用这个,你是H5向小程序返回数据吗,我当时是在小程序又请求了新的接口拿取数据,好像没有办法H5→小程序通信,只能小程序→H5单向通信
2023-12-01 17:22
小贤笔记

小贤笔记

回复 x***@163.com :
老哥, 我按作者改了为什么还是不行? 发送消息后onPostMessage事件接收不到数据, 但控制台有打印
2023-11-29 21:26
2***@qq.com

2***@qq.com

uni.postMessage 传值,但是没触发 @message="messagea"是咋回事
2023-11-28 14:19
招财猫

招财猫

回复 招财猫 :
知道为啥传值收不到了,mmp,对象里必须有个data的key,对应的才能收到,js里这么定义的,官方文档里就不知道写一下么,光知道写个传对象。。。多写几个字又不收费,无语
2023-10-24 14:47
招财猫

招财猫

回复 8***@qq.com :
触发到了,但是传值没过去,请问应该怎么传值,格式
2023-10-23 18:20
8***@qq.com

8***@qq.com

最简答的方法 亲测有效
安装: npm i y_uniwebview
引入: import y_uni from "y_uniwebview"
使用:y_uni.postMessage()
2023-09-13 21:46
f***@163.com

f***@163.com

直接copy压缩包里面的代码,为啥不行呢,一直报错:webUni is not defined",两个项目都是用uniapp编写的,一个是uniapp编写的微信小程序,一个是uniapp编写的H5,小程序嵌套h5,点击h5里面的按钮就报错:webUni is not defined
2023-08-16 10:30
f***@163.com

f***@163.com

回复 四季如春 :
亲,这个问题你解决了么,我也是这样的
2023-08-16 10:18
x***@163.com

x***@163.com

我是uni-app写的小程序中嵌入了一个uni-app写的H5页面,这是H5发送和小程序接收代码,H5那个页面运行在浏览器可以正常执行,但是在web-view标签这边,也就是小程序,就是接收不到数据,也绑定了@message。发送:back() {
console.log('点击了返回');//浏览器运行可以打印
this.myUni.webView.postMessage({
data: {
action: "back",
},
});
this.myUni.webView.navigateBack()//浏览器运行可以执行
},


接收:receiveInfo(event) {
console.log('event', event);//不会在微信小程序模拟器打印
}
},
2023-08-01 19:28