Egret社区

[Bug处理中] ios键盘关闭心跳恢复监听异常

2019-6-14 12:29
3046
产品 Egret Wing 版本 5.2.6
复现概率 90% 平台 iOS ios12.3
复现步骤 目前问题出现在iphone 6 ,iphone 6p,iphoneX系统为12.3的手机,目前已使用多台iphone手机进行的测试部分iphone未出现此问题,暂无法判断是ios系统问题还是个别iphone处理器问题,有问题的iphone会100%复现。
问题描述 键盘弹出后可以正常输入,关闭键盘后,页面出现假死现象,但是页面监听事件都还在,需切出浏览器再切回浏览器,才能正常继续,后来加了一个alert输出,发现第一次调用键盘并关闭后没有触发心跳恢复,而是在第二次开始调用键盘的时候会触发,第二次关闭键盘仍然不会调用心跳恢复的那段代码
错误代码 无错误代码
BUG截图

分享到 :
0 人收藏

6 个回复

倒序浏览
张宇  官方团队 | 2019-6-14 16:25:56
[mw_shl_code=applescript,true]egret.lifecycle.onPause = () => {
egret.ticker.pause();
}

egret.lifecycle.onResume = () => {
egret.ticker.resume();
}[/mw_shl_code]

我们是这么设计的:
激活输入框,会触发onResume事件。
点击`完成`(Done)后,会触发 onPause事件。


把 egret.ticker.pause(); 这行注掉就可以正常运行了


zjkst  初学乍练 | 2019-6-14 17:46:08
张宇 发表于 2019-6-14 16:25
[mw_shl_code=applescript,true]egret.lifecycle.onPause = () => {
egret.ticker.pause();
}

谢谢~但是注释后会不会导致游戏还在后台继续运行,因为我们发现切入后台后,音效还在一直播放,所以怕其他的例如计时器,动画等也没有被暂停导致耗电量高,手机发热等一系列问题
张宇  官方团队 | 2019-6-14 18:11:57
监听输入框的focus事件,要是输入导致的暂停就忽略,玩家真的切到后台就执行
zjkst  初学乍练 | 2019-6-14 19:04:29
张宇 发表于 2019-6-14 18:11
监听输入框的focus事件,要是输入导致的暂停就忽略,玩家真的切到后台就执行 ...

谢谢啦~帅哥~我们先试一下,再有不懂的再问你~
a365344743s  登堂入室 | 2019-6-15 09:04:22
张宇 发表于 2019-6-14 18:11
监听输入框的focus事件,要是输入导致的暂停就忽略,玩家真的切到后台就执行 ...

那不是所有输入框都要加监听判断,这设计不合理啊
a365344743s  登堂入室 | 2019-6-18 11:06:30
参考cocos的代码,https://github.com/cocos-creator ... os2d/core/CCGame.js,将
window.addEventListener("focus", context.resume, false);
window.addEventListener("blur", context.pause, false);
移动到
if (hidden && visibilityChange) {
    document.addEventListener(visibilityChange, handleVisibilityChange, false);
} else {
    window.addEventListener("focus", context.resume, false);
    window.addEventListener("blur", context.pause, false);
}
可以解决这个问题,但是这样会在某些情况无法调用暂停,具体需要自己取舍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

zjkst

初学乍练

积分: 5 帖子: 7 精华: 0

楼主热帖

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部