我正在使用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。