h5端可通过jssdk postMessage来操作小程序
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
// javascript
wx.miniProgram.navigateTo({url: '/path/to/page'})
wx.miniProgram.postMessage({ data: 'foo' })
wx.miniProgram.postMessage({ data: {foo: 'bar'} })
wx.miniProgram.getEnv(function(res) { console.log(res.miniprogram) })小程序<web-view src="{{url}}" bindmessage="onLoadMessage" bindload="onWebLoad" binderror="onWebError"></web-view>注意:wx.miniProgram.postMessage 向小程序发送消息,会在以下特定时机触发组件的message事件:小程序后退、组件销毁、分享、复制链接,也就是webview的bindmessage事件不会立即执行,需要等到小程序后退、组件销毁、分享、复制链接的时候才会执行回调,真是个鸡肋啊。
解决办法就是:h5端传值完了后,wx.miniProgram.postMessage({ data: {foo: 'bar'} }),立即执行wx.miniProgram.navigateTo({url: '/path/to/page'})到空白页,空白页再跳转回来,这个时候就能触发webview的bindmessage事件获取消息了,主要回退的时候webview会重新加载h5页面,注意做好缓存处理
还有一种办法就是:诱导用户点击分享按钮触发。
小程序传值给h5
需要传给小程序的值当做参数放在当前url上,小程序中通过点击转发即可获取。这种方法缺点是只能在点击转发时才可传。
小程序端:
<web-view src="https://example.html?id=123"></web-view>h5端通过url获取参数
<script>
let id = getUrlParam('id');
</script>参考https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html
网友回复
如何破解绕开seedance2.0真人照片生成视频 限制?
python有哪些算法可以将视频中的每个帧图片去除指定区域水印合成新的视频?
iphone的激光雷达数据能否实时传输到three三维空间中?
豆包sora等ai视频生成大模型生成的视频水印如何去除?
python如何实现在电脑上拨号打电话给手机?
具身机器人与人形机器人区别?
nodejs如何将一个完整的js代码文件切割成不同的部分混淆后动态加载进入html运行?
为啥windows.onerror捕获js错误是这样的{"message":"Script error.","source":"","lineno":0,"colno":0,"stack":null,
2026年ai将全面接管编程?
WebMCP是干啥的?


