isTrusted=false onMessage postMessage -解决方案

本文探讨了H5嵌套在ReactNative WebView中通信的问题,特别是当使用JSON.stringify(data)时出现的isTrusted错误。文章详细解释了事件来源不可信的原因,并提供了有效的解决方案,包括避免对event对象进行字符串转换和直接读取event.data属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

{"isTrusted": "false"} H5嵌套在react native app webview中时,app与HTML之间通信.出现这个原因是在html端使用 JSON.stringify(data),并且两个目标平台不同源。翻译过来就是事件来源不可信.
 

react native端:postMessage

***.postMessage('string');

H5端:onMessage

{"isTrusted": "false"}

window.addEventListener("message",function(event){ 

    JSON.stringify(event);// {"isTrusted": "true"} || {"isTrusted": "false"} 
 })

MDN:
返回一个布尔值,为true表明当前事件是由用户行为触发(比如说真实的鼠标点击触发一个click事件), 为false表明事件由一个脚本生成的(使用事件构造方法,比如event.initEvent)

window.postMessage = function(event){}

var bool = event.isTrusted;

 


解决方法{"isTrusted": "false"}
1.对于event对象不要进行string转化
2.直接取出event.data属性

实验:

翻遍百度都没有解决方式,在这里可以找到答案。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值