Android WebView: Very laggy button response

后端 未结 4 1923
旧巷少年郎
旧巷少年郎 2020-12-29 13:49

I\'ve got a little web app that I made to play with Android\'s WebView functionality.

I\'ve got some divs that I use as buttons (with onclick attributes

4条回答
  •  一整个雨季
    2020-12-29 14:47

    As the Google code is very complicated, I implemented my own using Mootools 1.3+:

    Element.Events.touch = 
    {
        base: 'touchend',
        condition: function(e) 
        {
            return  ((new Date().getTime() - this.startT < 200) && this.valid) ? true : false;
        },
        onAdd: function(fn) 
        {
            this.addEvent('touchstart', function(e)
            {
                this.valid = true;
                this.startT = new Date().getTime();
                this.startX = e.touches[0].clientX;
                this.startY = e.touches[0].clientY;
            });
            this.addEvent('touchmove', function(e)
            {
                if ((Math.abs(e.touches[0].clientX - this.startX) > 10) || (Math.abs(e.touches[0].clientY - this.startY) > 10)) this.valid = false;
            });
        }
    };
    

    Just put this code on your page and now use touch event instead of click:

    $('id').addEvent('touch', function()
    {
        // your code
    });
    

    It works by adding a touchend and touchstart event, if they happen in less than 200ms and the touch doesn't get too far it's a valid touch otherwise not.

    It worked very well on 2.2 and 4.0

提交回复
热议问题