我正在使用html5游戏,并且在chrome,firefox,safari,Ipad IO6,android中一切正常,但是在IOS7和Iphone4中效果不佳。触摸事件无法正常运行。即使是简单的“ e.preventdefault”也无法处理双击问题,它可以保持放大和缩小。不像其他设备。
任何人都有同样的问题?

它是我的代码的一部分..抱歉不能写太多..我有一些NDA

var ua = navigator.userAgent.toLowerCase();
var checks = Boolean(ua.match(/android/))||
             Boolean(ua.match(/ipod/))||
             Boolean(ua.match(/ipad/))||
             Boolean(ua.match(/tablet/))||
             Boolean(ua.match(/tablet pc/))

var touchable = checks && (typeof (document.ontouchstart) != 'undefined');
if(touchable){
    canvas.addEventListener('touchstart',mouseDown,false);
    canvas.addEventListener('touchmove',mouseMove,false);
    document.addEventListener('touchend',mouseUp,false);
}else{
    canvas.addEventListener('mousedown',mouseDown,false);
    canvas.addEventListener('mousemove',mouseMove,false);
    document.addEventListener('mouseup',mouseUp,false);
}

function getMousePos(evt)
{
    if(touchable && evt.touches.length>1)return;
    if(touchable)evt = evt.changedTouches[0];

    var rect = canvas.getBoundingClientRect();
    return {
        x: (evt.clientX - rect.left) / game.scale.x,
        y: (evt.clientY - rect.top) / game.scale.y
    };
}

function mouseDown(e)
{
var mousePos = getMousePos(e);
alert(mousePos.x + "," + mousePos.y);
e.preventDefault();
}

最佳答案

在运行iOS7的iPhone4上测试phonegap应用程序时,我肯定遇到了这个问题。我使用fastclick.js消除了300毫秒的延迟,将所有过渡设置为0,消除了悬停延迟,并且在滚动时仍然存在明显的滞后。不幸的是,该问题似乎与尝试运行iOS7的iPhone4硬件直接相关。从技术上讲,虽然iOS7在iPhone4上可用,但iOS7在设计时并未考虑到iPhone4。

09-25 15:44