• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

web组件发消息给H5页面时报错

android 搞代码 4年前 (2022-03-01) 21次浏览 已收录 0个评论

问题形容

Web组件发消息给H5页面时,呈现如下js谬误:
02-14 09:22:56.329 E/jsLog (18834): [H5]Uncaught TypeError: system.onmessage is not a function

问题剖析
当H5页面中定义的 system.onmessage 函数代码逻辑较多,有可能还依赖一些内部js(比方jquery)的援用。此时如果web组件在 onpagefinish 事件处理函数中触发了 this.$element(‘webElementId’).postMessage({message:’xxx’}),则可能会因为H5页面的js没有齐全加载,从而导致呈现 system.onmessage is not a function 的谬误。

处理过程
H5页面中 system.onmessage 函数定义要轻量,只接管快利用页面传递过去的数据即可,剩下的逻辑交给h5页面本人的生命周期函数解决,比方 onload 事件。
须要留神 onload 事件触发时,快利用的数据还没接管到,H5页面中要轮询监听数据,故请参考如下实现代码:

不举荐的实现代码如下:

倡议与总结
了解快利用与H5音讯发送机制,通过轮询的形式解决异步问题。

原文链接:https://developer.huawei.com/consumer/cn/forum/topic/0201411120590030372?fid=18

原作者:Mayism


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:web组件发消息给H5页面时报错
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址