1

sencha touch (2.1.0) アプリを作成し、Samsung Galaxy S2 (Android 4.0.3) でテストしました。snecha cmd のネイティブ ビルド コマンドと別のビルド コマンドでそれを行ったら、phonegap でラップしました。2 本の指で同時に画面に触れると、どちらの場合もフリーズします。ボタンを押したり、スクロールしたりできなくなりました。

その問題の解決策はありますか?

Sencha フォーラム ( http://www.sencha.com/forum/showthread.php?249581-Multi-touch-and-phonegap )の投稿も読みましたが、うまくいかなかったか、何かをしている最中です。違う。

どんな助けもかなりのものです。

4

1 に答える 1

0


私は最近この問題に遭遇し、あなたが言及した 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);
            }
           });

     }



于 2013-06-12T10:19:50.323 に答える