检测Ionic / Android WebView中的多个触摸

时间:2014-10-02 14:52:44

标签: android ios angularjs touch ionic-framework

在离子应用程序中,我正在观察on-swipe-right指令以实现“后退”功能。

doctype html5
html(lang='en', ng-app='my-app')
  head
    meta(charset='utf-8')
    meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1')
    meta(name='viewport', content='width=device-width,initial-scale=1')

//- snip

  body(
    ng-controller="DoloresMainCtrl"
    on-swipe-right="toMainScreen($event)"
  )
    ion-nav-view

在控制器中

angular.module('my-app', [
    'ui.router'
])
.controller 'DoloresMainCtrl', ($scope, $state)->
    $scope.toMainScreen = ($event)->
        $state.go '^' if $event?.gesture?.touches?.length is 2

事件触发正常,但$event.gesture.touches.length始终为1

我需要设置什么才能让离子检测多次触摸?

(约束:Android 4.4 +,iOS 8 +)

1 个答案:

答案 0 :(得分:0)

这是一个可以检测点击事件的多个触摸点的工作示例。这些点的触摸开始必须非常同步才能算作多次击打。否则,它们被视为两个连续的点击。

angular.module('my-app', ['ui.router'])
    .directive('multiTap', function () {
        return {
            restrict: 'A',
            link: function postLink(scope, element, attrs) {
                element.text('this is the multi-tap directive');
                var tap = ionic.onGesture("tap", handler, element[0]);
                function handler(e) { console.log(e);
                    element.text(e.type + e.gesture.touches.length);
                }
            }
        };
    });

HTML示例:

<ion-content class="padding" multi-tap>