2013-02-12 45 views
0

使用PhoneGap的建立与PG 2.2.0和测试在我的Galaxy S2采用Android 4.0.4PhoneGap的触摸事件只发射一次设备已经被旋转

我已经找到touch events not working in android phonegap webview (or even built-in browser)Phonegap on Galaxy S3 ignores touch eventsWebView in ICS touch events not being fired properly,但我不知道如果他们描述完全相同的问题。

我正在使用Tap.js和iScroll。它们都不起作用(我不能滚动或使用我的应用程序菜单),直到我旋转设备至少一次。我可以将它旋转回到我开始的位置,它仍然有效。看起来第一个旋转/ orientationchange触发某种刷新,但我不知道我应该如何处理这个。

也许某个具有相同症状的人能够解决此问题。谢谢。

编辑:我禁用所有的JS,并把这个代码里deviceready

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

而且我至少一个orientationchange后只能得到alert

回答

0

我把我的应用程序分开,并创建了一个测试案例后,我们发现:组合中加入position:relative;htmlbodyoverflow:hidden;似乎造成了问题。

要完全解决我的问题,我采取了以下措施:

  • 做由HTML HTML,再次体static
  • 删除overflow:hidden;和身体
  • 而是同时适用于#app(我的包装的div)
  • document级别收听touchstart touchmove touchendpreventDefault

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

  • 如果调用了preventDefault为touchstart,然后touchmove将不会触发