当前位置: 首页 > 知识库问答 >
问题:

webview小程序用bindmessage为什么接收不到h5传过来的参数?

颛孙庆
2024-04-02

h5向微信小程序传递参数

wx.miniProgram.postMessage({ data: {param: '123'} })

小程序用bindmessage为什么接受不到参数

共有2个答案

漆雕伟志
2024-04-02

看看文档中关于bindmessage的描述?
https://developers.weixin.qq.com/miniprogram/dev/component/we...

网页向小程序 postMessage 时,会在以下特定时机触发并收到消息:小程序后退、组件销毁、分享、复制链接(2.31.1)。e.detail = { data },data是多次 postMessage 的参数组成的数组。
左劲
2024-04-02

在微信小程序中,要接收来自H5页面的消息,你需要使用webview组件的message事件,而不是bindmessage。所以,你可能遇到的问题是因为你使用了错误的事件名称。

以下是如何在微信小程序中正确接收来自H5页面的消息的步骤:

  1. 在小程序的wxml文件中,确保你使用了webview组件,并为其绑定了message事件:
<webview id="myWebview" src="你的H5页面URL" bindmessage="onMessage"></webview>
  1. 在对应的js文件中,实现onMessage事件处理函数:
Page({  onMessage: function(e) {    console.log(e.detail.data); // 这里将打印出从H5页面传递过来的数据  }})

确保H5页面和小程序页面在同一域下,因为出于安全考虑,跨域的消息传递可能会被阻止。

如果你按照上述步骤操作后仍然无法接收消息,请检查以下几点:

  • 确保H5页面和小程序页面在同一域下。
  • 检查webview组件的src属性是否正确指向了H5页面的URL。
  • 确保H5页面中的postMessage方法调用没有错误。
  • 查看小程序的控制台输出,看是否有其他错误信息。

如果以上都没有问题,那么消息传递应该能够正常工作。如果仍然存在问题,请提供更详细的代码和错误信息,以便进一步诊断。

 类似资料:
  • 本文向大家介绍h5页面如何传递参数给小程序?相关面试题,主要包含被问及h5页面如何传递参数给小程序?时的应答技巧和注意事项,需要的朋友参考一下 1、H5页面 <script src="${base}/resources/common/js/jweixin.miniProgram.js"></script> wx.miniProgram.postMessage({ data: { shareUrl:

  • html请求代码是这样的,用post请求,键的名字叫name controller的代码是这样的,因为是传json,我有加@RequestBody 实体类的代码,也是取name,getter setter也有实现

  • 问题内容: 这适用于Applet,Servlet,Midlet等的子类。 为什么他们不需要?如果我想创建一个从或类似的类开始,那是不好的设计,还是我将如何去做? 问题答案: 它实际上是好的设计,但并不明显,您想要执行的操作没有效果,因此有点反常。 这些类型的应用程序生活在容器中,因此,它们的切入点由这些容器必须遵守的标准确定。这些标准的设计者选择不将入口点称为主要入口点。您可以将功能放在重写的方法

  • 我正在尝试将数据从DialogFraank发送到创建此对话框的Fraank。在目标片段中,我使用以下代码: 我还在fragment实现了我的接口: 在DialogFragment中,我使用以下代码: 并发送数据: 我还试图从这个问题中使用onActivityResult(): 接收数据: 但我没有收到数据:(((

  • 本文向大家介绍Android 中为什么要用Fragment.setArguments(Bundle bundle)来传递参数,包括了Android 中为什么要用Fragment.setArguments(Bundle bundle)来传递参数的使用技巧和注意事项,需要的朋友参考一下 Fragment在Android3.0开始提供,并且在兼容包中也提供了Fragment特性的支持。Fragment的

  • 我的脚本将,作为参数: 但当我将它作为分隔符传递时,它是空的 我知道在参数/参数解析中很特殊,但我以和引用的形式使用它。 为什么它不起作用?我使用的是Python 3.7.3 这是测试代码: 当我运行它作为它打印空。