PhoneGap触摸事件仅在设备旋转后触发

时间:2013-02-12 19:12:04

标签: javascript cordova touch

使用PGG 2.2.0构建PhoneGap并使用Android 4.0.4在我的Galaxy S2上进行测试

我已找到touch events not working in android phonegap webview (or even built-in browser)Phonegap on Galaxy S3 ignores touch events以及WebView in ICS touch events not being fired properly,但我不确定他们是否描述了完全相同的问题。

我正在使用Tap.js和iScroll。它们都没有工作(我无法滚动或使用我的应用程序菜单),直到我至少旋转一次设备。我可以将它旋转回我开始的地方,它仍然有效。似乎第一个旋转/方向更改触发了某种刷新,但我不知道我应该如何处理它。

也许有相同症状的人能够解决这个问题。感谢。

编辑:我禁用了所有JS并将此代码放在deviceready

document.getElementById('app').addEventListener('touchstart', function() {
    alert('touchstart #app');
}, false);

我在至少一个alert之后才得到orientationchange

1 个答案:

答案 0 :(得分:0)

在我拆开应用程序并创建测试用例后,我发现以下内容:将position:relative;添加到htmlbody并结合overflow:hidden;似乎已导致这个问题。

为了完全解决我的问题,我采取了以下步骤:

  • 再次制作html和正文static
  • 从html和正文
  • 中删除了overflow:hidden;
  • 而是同时应用于#app(我的包装div)
  • touchstart touchmove touchend级和document
  • 上收听preventDefault

2013年6月12日更新,另一个重要发现:

  • 如果您为touchstart调用preventDefault,则touchmove将无法启动