w***@163.com
w***@163.com
  • 发布:2017-04-20 10:41
  • 更新:2017-04-20 20:20
  • 阅读:6526

关于mui收到isTrusted=false事件的问题。

分类:MUI

我使用MUI写了一个APP,在Android上运行。并自定义了事件,使用fire触发,发现事件在指定窗口都能收到,但是有的情况是正确的;有的情况事件收到了,但是参数值是错误的,在event中,包含了isTrusted=false的内容,event.detail也为空,这个参数不是我期望的。有没有人遇到与我相同的情况,请教如何解决?

(1)发现错误的代码如下:
在类似于微信的底端页面框架中的代码:
(barItemWebView[0]是通过mui.preload一个预加载的一个窗口,是在底端页面框架代码中创建出来的窗口)
barItemWebView[0].addEventListener("loaded", function()
{
bFirstContentWebViewIsLoaded = true;
setTimeout(JCFGetPosition, 1000);
}, false);
在JCFGetPosition中调用了mui.fire(barItemWebView[0], 'GetMyPos', {pos:JCF_obj2json(jcfMyLocationPos)});以便发出事件。
在目标窗口内接收事件:
window.addEventListener('GetMyPos',function(event){
//获得事件参数
var id = event.detail.id;
alert("Recv GetMyPos event:"+JCF_obj2json(event));
});
结果,发现这里的事件能收到,但打印出来永远是isTrusted=false,event.detail也为空,不是期望的参数。不知道何故。

(2)另一处正确的代码:点击列表,显示详情的页面,采用类似以上的方法,则接收到的事件参数是正确的。

有没有人遇到与我相同的情况,请教如何解决?
谢谢!

2017-04-20 10:41 负责人:无 分享
已邀请:
w***@163.com

w***@163.com (作者)

自己找出原因了,我自己来回答一下。
原因:需要直接取event.detail.id的值就正确了。不能将event转换为json字符串进行打印。看来event不是一个普通的java类,很可能是一个内置的数据结构,无法直接转换层json进行打印。
我的猜想是否正确,请官方给个答案吧,谢谢!

  • j***@qq.com

    嗯,这个信息给了我很大的帮助!

    2020-01-18 22:40

w***@163.com

w***@163.com (作者)

没有人回答吗?有来自官方的答案吗?

该问题目前已经被锁定, 无法添加新回复