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

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方法。

30 关注 分享
老船长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

要回复文章请先登录注册

雷峰

雷峰 (作者)

回复 Huareu :
不会呀 你应该是配置有问题,API还是有效果的。现在官方最新版可以直接用uni.webView.xxx来操作,不需要改源码了
2021-10-13 11:34
Huareu

Huareu

用了这个方法后,在小程序webview中好像还是没有效果,页面还是无法跳转呢,不知道楼主遇到没有
2021-08-07 11:05
x***@foxmail.com

x***@foxmail.com

回复 x***@foxmail.com :
解决了
document.addEventListener('click', function(e) {
console.log(e)
if(e.target.dataset.action === 'navigateTo'){
webUni.navigateBack({
delta: 1
});
}
});
2021-08-04 11:07
x***@foxmail.com

x***@foxmail.com

回复 x***@foxmail.com :
用query或者getClassname 之类的都不行,getclassName可以获取元素数组,但是getClassName[0] 就又是null或者undefined的了
2021-08-04 10:51
x***@foxmail.com

x***@foxmail.com

请问下,我可以获取document.addEvent监听,但是不能获取某个dom元素的监听有什么方法么
let x = document.getElementById('btnaac')
console.log(x,'123')
这个时候x打印结果为null、
直接写document.addevent(
uni.navback => 1
)
是可以触发返回的
2021-08-04 10:50
雷峰

雷峰 (作者)

回复 7***@qq.com :
你的问题我看的不清楚,你是怎么进行通信的?你说的这个错误是你使用WebSocket报错的。webUni这个对象只能使用uni的部分API,不是和项目里的uni对象一样的。
2021-06-22 16:53
7***@qq.com

7***@qq.com

WebSocket connection to 'ws://localhost:9542/sockjs-node/886/ervhfnai/websocket' failed: WebSocket is closed before the connection is established.
2021-06-15 16:25
7***@qq.com

7***@qq.com

下载了引入了 改成webUni了 还是无法通信 老哥知道怎么回事吗
2021-06-15 15:37
myforr

myforr

很好用,谢谢作者
2021-06-02 13:53
雷峰

雷峰 (作者)

回复 5178008pp :
如果需要跳转回app指定页面就是使用webUni.navigateTo,webUni.redirectTo...等api。这地方的原理就是webUni这个对象等同于主项目的uni对象。只不过在webview引入的webUni对象只支持部分api
2021-05-07 09:05