我们使用的引擎在内部设置了单点触摸限制的逻辑,在一个点击未结束时,禁止响应下一个点击。在测试过程中偶现所有点击均无法响应的情况。经过日志排查。发现有时候,在触发了wx.onTouchStart回调之后,会出现wx.onTouchEnd与wx.onTouchCancel 都没有回调的情况,导致我们内部实现的点击计数器一直无法清零,也就没法响应后面的点击事件了。请问是微信小游戏的触摸事件组件设计如此吗?还是一个bug?
部分代码如下
wx.onTouchStart(touchEventHandlerFactory('touchstart'));
wx.onTouchMove(touchEventHandlerFactory('touchmove'));
wx.onTouchEnd(touchEventHandlerFactory('touchend'));
wx.onTouchCancel(touchEventHandlerFactory('touchcancel'));
function touchEventHandlerFactory(type) {
return function (event) {
var touchEvent = new TouchEvent(type);
if(type!='touchmove')
{
console.log("weapp-adapter dispatch "+type);
}
}
日志图如下,第一次touchStart之后未出现touchEnd或touchCancel,第二次touchStart之后出现touchCancel。之后又每次都是touchstart和touchEnd成对出现
你好,是否有复现的方法,能否提供个代码片段?(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。