Android Sencha Touch应用程序在多点触摸/安卓操作时冻结
我构建了一个sencha touch(2.1.0)应用程序,并在我的三星Galaxy S2(Android 4.0.3)上进行了测试。 有一次,我使用snecha cmd的本机构建命令和另一个命令完成了这项工作,我用phonegap将其包装起来。 当我同时用两个手指触摸屏幕时,两次我都被冻住了。 我不能再按按钮或滚动了 有人能解决这个问题吗 我也在Sencha论坛()上读过这篇文章,但这对我来说不起作用,或者我做错了什么 任何帮助都是值得的。Android Sencha Touch应用程序在多点触摸/安卓操作时冻结,android,extjs,touch,freeze,pinch,Android,Extjs,Touch,Freeze,Pinch,我构建了一个sencha touch(2.1.0)应用程序,并在我的三星Galaxy S2(Android 4.0.3)上进行了测试。 有一次,我使用snecha cmd的本机构建命令和另一个命令完成了这项工作,我用phonegap将其包装起来。 当我同时用两个手指触摸屏幕时,两次我都被冻住了。 我不能再按按钮或滚动了 有人能解决这个问题吗 我也在Sencha论坛()上读过这篇文章,但这对我来说不起作用,或者我做错了什么 任何帮助都是值得的。 我最近遇到了这个问题,访问了您提到的Sencha论坛
我最近遇到了这个问题,访问了您提到的Sencha论坛链接,并在我的代码中实现了它,实现了以下功能。
1.使用修复程序,应用程序将永远不会在同时点击时冻结。
2.在之前同时点击两个或多个点后,您必须再次点击屏幕上的某个位置。
注:该问题仅在android 4.0.x和Sencha 2.1中重现 非常感谢来自Sencha论坛的Troles
在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);
}
});
}
Android logcat在通过PhoneGap运行时是否显示任何内容?这是否会导致应用程序完全冻结,需要强制退出?我以前见过很多,但它从来没有给我造成任何冻结。是的,这是错误,logcat在冻结时显示:“D/CordovaLog(12706):未捕获类型错误:无法读取未定义的属性‘点’”。有时我可以通过一个尖灭来摆脱冻结,有时我不得不退出应用程序。