私は最近この問題に遭遇し、あなたが言及した Sencha フォーラムのリンクにアクセスし、以下を実現するコードに実装しました。
1.修正により組み込みアプリが同時タップでフリーズすることがなくなりました。
2. 2 つ以上のポイントを同時にタップした後、もう一度画面のどこかをタップする必要があります。
注: この問題は、android 4.0.x および Sencha 2.1 でのみ再現可能です。
Sencha Forum の TROELS に感謝し
ます 以下に示すように、app.js で Ext.application の外に if 条件を配置します。
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);
}
});
}