我最近遇到了这个问题,并访问了您提到的 Sencha 论坛链接,并在我的代码中实现了它,实现了以下目标。
1.与修复合并的应用程序将永远不会冻结同时点击。
2. 在您之前同时点击两个或更多点之后,您将不得不再次点击屏幕上的某个位置。
注意:这个问题只能在 android 4.0.x 和 Sencha 2.1 上重现。
非常感谢 Sencha 论坛的 TROELS
在您的 app.js 中,将 if 条件放在您的 Ext.application 之外,如下所示
Ext.application({
name:xyz
requires:[abc]
//other stuffs
});
if(Ext.os.is.Android && Ext.os.version.equals(4.0)) {
Ext.define('app.overrides.TouchGesture', {
override: 'Ext.event.publisher.TouchGesture',
reset: function(e){
if(Ext.os.version.equals(4.0) && this.currentTouchesCount > 0){
e.changedTouches = Ext.Object.getValues(this.currentTouches);
this.onTouchEnd(e);
}
}
});
window.orgPinchEndMethod = Ext.event.recognizer.Pinch.prototype.end;
Ext.define('app.overrides.Pinch', {
override: 'Ext.event.recognizer.Pinch',
end: function(e){
var wasTracking = this.isTracking,
result = window.orgPinchEndMethod.apply(this, arguments);
if(wasTracking){
this._resetDetection(e);
}
return result;
},
_resetDetection: function(e){
var tg = Ext.event.Dispatcher.getInstance().getPublishers().touchGesture;
setTimeout(function(){
tg.reset(e);
}, 0);
}
});
}