ICS触摸事件中的WebView未正确触发

时间:2012-07-09 07:46:50

标签: android-4.0-ice-cream-sandwich

在ICS webview(与2.3.3等旧版本兼容)中,我正在加载html文件并编写了一些与javascript中的touchmove和touchend等触摸事件相关联的函数。但是ICS中的问题是设备上的点击有时无法识别而且logcat中没有错误,有人可以解决这个问题吗?提前谢谢。

1 个答案:

答案 0 :(得分:2)

可能是您的设备将它们视为鼠标事件。 (吸...)

我遇到了类似的问题。我不确定这是我的平板电脑的问题,还是ICS默认浏览器/ webview的一般问题。

测试以下内容。

  1. 在没有jquery / plugin的情况下编写html / js:
    • 将一些函数绑定到mouseevents(mousedown / mousemove / mouseup)和touchevents(touchstart / touchmove / touchend / touchcancel)以跟踪它们
    • 所以,你可以追踪你是否已经mousedown / mousemove / mouseup / touchstart / touchmove / touchend网页
    • 将网页上传到网络
  2. 现在,使用不同的设备来测试网页。
    • 使用PC(任何浏览器),它应该被追踪为mouseevents
    • 使用i-device,它应该被追踪为touchevents
    • 使用Android 2.3.X(任何浏览器),它应该被追踪为touchevents
  3. 尝试使用ICS。这是我的问题:
    • 使用Android ICS的Chrome浏览器,它被视为touchevents。 (精细)
    • 使用Android ICS的默认浏览器,它被追踪为mouseevents。 (什么!!)
  4. 更糟糕的是,在我的ICS设备(默认浏览器)中:

    • 我的ICS默认浏览器中永远不会触发touchevents。如果我触摸该网页,则会显示mousedown / mousemove。
    • 这些设备确实支持创建touchevents(document.createEvent),这是一个谎言。
    • 未完成mouseevents序列。因此,即使我的代码同时支持mouseevents和touchevents,mouseevent函数仍然不能支持这个ICS设备。