2013-02-12 46 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將不會觸發