帖子
帖子
用户
博客
课程
显示全部楼层
41
帖子
0
勋章
208
Y币

[BUG] 关于api.addEventListener和api.sendEvent的问题

[复制链接]
发表于 2016-6-26 14:52:42
本帖最后由 zhoubin 于 2016-6-26 15:29 编辑

经过将近一天的测试,我觉得以下问题是个bug:首先描述下问题上下文:
1:有两个窗口,分别是A和B,B页面是经过A页面的按钮打开的
2:B页面是一个注册页面

问题1:在A页面的apiready中写测试代码:
  1.   api.addEventListener({
  2.                   name:'reloadGroup'
  3.               },function(ret,err){
  4.                 console.log(2)
  5.                 reloadGroup();
  6.               });
  7.               
  8.               setTimeout(function(){
  9.                 console.log('trigger:reloadGroup')
  10.                 api.sendEvent({
  11.                     name:'reloadGroup'
  12.                 })
  13.               },1000)
复制代码

意思是:注册reloadGroup事件,然后1秒后触发这个事件,这段代码事件能够被触发的几率,大概是90%。有的时候,sendEvent已经执行了,但是事件没有触发。进过测试,上面这段代码,如果在apiready事件完成后再执行(用setTimeout,使得addEventListener在apiready执行完成后再执行),事件触发的几率是100%

问题2:在B页面触发A页面的事件reloadGroup,完全可以执行,然后点击B页面中的输入框,就会出现输入法,然后再退出输入法,再次出发A页面的事件reloadGroup,A页面就不能再接收到这个事件了。我保证B页面的输入框没有任何事件。也没有出现任何错误。


再补充一个情况:打开B页面,可以触发A页面的reloadGroup事件,然后关闭B页面,重新打开,再次出发reloadGroup,A页面就不能再收到这个事件了


再次补充:在真机调试和云编译下,都存在这样的问题
小草 发表于 2016-7-7 09:29
重新编译了自定义loader吗, 可以重新编译一个, 我测试是没有问题的

  api.addEventListener还是无法跨窗口监听
68
帖子
0
勋章
1万+
Y币
待审核
41
帖子
0
勋章
208
Y币
lzy160824 发表于 2016-6-26 20:29
win监听frame没有问题,你好像是两个win

另外,谢谢你的回复!
84
帖子
2
勋章
1486
Y币
今天已经修复了, 重新编译测试一下
41
帖子
0
勋章
208
Y币
小草 发表于 2016-6-27 16:40
今天已经修复了, 重新编译测试一下

看到效果了,非常感谢!!
41
帖子
0
勋章
208
Y币
小草 发表于 2016-6-27 16:40
今天已经修复了, 重新编译测试一下

云编译好了,真机调试还是存在这样的问题
84
帖子
2
勋章
1486
Y币
zhoubin 发表于 2016-7-1 14:00
云编译好了,真机调试还是存在这样的问题

重新编译了自定义loader吗, 可以重新编译一个, 我测试是没有问题的
0
帖子
0
勋章
1911
Y币
本帖最后由 时光~巷陌 于 2016-7-29 16:20 编辑
学霸_ios之webapp 发表于 2016-7-29 15:42
api.addEventListener还是无法跨窗口监听

请仔细阅读一下这个连接里的execScript
http://docs.apicloud.com/Client-API/api#18
0
帖子
0
勋章
3
Y币
小草 发表于 2016-7-7 09:29
重新编译了自定义loader吗, 可以重新编译一个, 我测试是没有问题的

您需要登录后才可以回帖 登录

本版积分规则