2013-02-20 49 views
1

我構建了一個sencha touch(2.1.0)應用程序並在我的Samsung Galaxy S2(Android 4.0.3)上進行了測試。 一旦我用snecha cmd的本機構建命令做了這個,另一個我用phonegap包裝了它。 兩次,當我用兩根手指同時觸摸屏幕時,我已經凍結。 我無法按下按鈕或滾動了。Sencha Touch多點觸控時應用程序凍結/ Android

有沒有人解決這個問題?

我也在Sencha論壇(http://www.sencha.com/forum/showthread.php?249581-Multi-touch-and-phonegap)上看了這篇文章,但那對我沒有用,或者我做錯了什麼。

任何幫助將是可觀的。

+0

不通過Android的運行時,logcat的顯示任何東西PhoneGap的?這是否會導致應用程序完全凍結,需要強制退出?我以前見過這麼多,但它從未對我造成任何凍結。 – OhmzTech 2013-02-21 05:21:11

+0

是的,這是錯誤,logcat在凍結時顯示: 「D/CordovaLog(12706):未捕獲TypeError:無法讀取未定義的屬性'point' 有時,我可以通過捏出有時我必須退出應用程序。 – user2090752 2013-02-21 11:48:22

回答

0


我最近發現了這個問題,並訪問了你提到的Sencha論壇鏈接,並在我的代碼中實現了它,它實現了以下功能。
1.修復併入的應用程序不會同時點擊凍結。
2.在同時點擊兩個或更多點之後,您將不得不再次點擊屏幕上的某個位置。

注意:該問題僅適用於Android 4.0.x和Sencha 2.1。

從煎茶論壇非常感謝特勒爾斯
在你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); 
      } 
      }); 

    } 



相關問題