关于android:web组件发消息给H5页面时报错

8次阅读

共计 603 个字符,预计需要花费 2 分钟才能阅读完成。

问题形容

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

正文完
 0