小程序
小游戏
企业微信
微信支付
扫描小程序码分享
微信小程序嵌入webview,网页端向小程序发送消息,小程序的bindmessage回调函数接收不到,但是小程序调试工具能接收到网页向小程序发送的消息,开头是invokeAppService postMessage,也不知道在哪里接收的,回调函数也没有触发
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
小程序只会在特定时机才收到H5页面传过来的消息。这些特定的触发时机包括:
wx.navigateBack
bindmessage
web-view
postMessage
wx.onShareAppMessage
页面后退,组件销毁(跳转到另外页面)可以直接在H5页面中调用下面这些API来完成:
所以,在H5页面中做完 wx.miniProgram.postMessage 操作后,你还需要执行一下上面的这些API。不然小程序的回调函数不会被触发。
需要注意的是,如果你的小程序第一个页面就嵌入了web-view,那么H5中没办法使用wx.miniProgram.navigateBack返回,因为这已经是第一个页面了。
微信关于 postMessage 机制的文档很垃圾,很多人都没看明白,社区里面关于这个的问题从22年到现在一直有人提就是不完善。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
我也遇到类似的问题 在工具中能接收到 但是通过 bindmessage 绑定的函数根本不触发,怎回事
本回答由AI生成,可能已过期、失效或不适用于当前情形,请谨慎参考
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
小程序只会在特定时机才收到H5页面传过来的消息。这些特定的触发时机包括:
wx.navigateBack
API 返回上一页时,bindmessage
事件会被触发,小程序会收到 H5 页面在当前web-view
实例生命周期内所有postMessage
发送的数据。web-view
组件所在的页面被销毁时(例如,用户从当前页面跳转到另一个页面,或者关闭小程序),bindmessage
事件会被触发。wx.onShareAppMessage
分享小程序时,bindmessage
事件会被触发。页面后退,组件销毁(跳转到另外页面)可以直接在H5页面中调用下面这些API来完成:
所以,在H5页面中做完 wx.miniProgram.postMessage 操作后,你还需要执行一下上面的这些API。不然小程序的回调函数不会被触发。
需要注意的是,如果你的小程序第一个页面就嵌入了web-view,那么H5中没办法使用wx.miniProgram.navigateBack返回,因为这已经是第一个页面了。
微信关于 postMessage 机制的文档很垃圾,很多人都没看明白,社区里面关于这个的问题从22年到现在一直有人提就是不完善。
我也遇到类似的问题 在工具中能接收到 但是通过 bindmessage 绑定的函数根本不触发,怎回事