2012-06-07 11 views
25

我正在開發基於webView的android應用程序,並試圖捕獲觸摸事件。但它不工作,我看到在日誌中這樣的信息:如何修復「因爲我們正在等待WebCore的觸摸響應而拖動拖」

「小姐,我們正在等待的WebCore的觸摸下響應拖」

有誰知道如何解決這個問題?

+0

這裏有同樣的問題..你有沒有發現該警告背後的原因是什麼? – Zombie

+0

我也有同樣的問題...任何解決方案呢? –

+0

nope not yet ..但我認爲我們在本機vs HTML應用程序的辯論中得到了強烈的意見... – John

回答

3

目前,我在Android WebView中實現OpenLayers映射時面臨同樣的問題。 似乎是自2009年以來開放式問題:Issue 4549 了一種解決方法有提到:使用

e.preventDefault() 
每ontouch ###

- 功能(JavaScript)的。

另一個提示是this answer on SO

它爲我,但我要仔細看看網頁視圖多點觸摸的填充工具與MTfix爲Android(對不起,作爲一個新的用戶我真的不連接允許兩個以上發佈更多的超鏈接,但谷歌將幫助你)

1

我解決了這個問題與添加

document.addEventListener('touchstart', function(e){ onStart(e); }, false); 
    function onStart (touchEvent) { 
     if(navigator.userAgent.match(/Android/i)) { 
     touchEvent.preventDefault(); 
     } 
    } 
+0

preventDefault()適用於某些設備,這在摩托羅拉設備4.1中運行良好。相同的代碼在三星銀河系和星系筆記「我得到了no_fast_draw = false」時不起作用,這與此觸摸問題類似。 – John

0

對我來說,我能得到這個功能的唯一方法是將該事件直接連接,因此在webCore之前被觸發。 addEventListenter對我來說太遲了,事件在webCore中停滯不前,並沒有冒出來。這是與Android 4.0.4

一個GALAXY NOTE這是我在我的實例固定它:

var myDiv = document.createElement("div"); 
myDiv.className = "myClass"; 
myDiv.id = "myId"; 
myDiv.setAttribute("data-open","false"); 
myDiv.ontouchmove = function(e) { 
    //e is touch event, this is myDiv      
    e.preventDefault(); 
    //e.changedTouches[0].pageX 
    //http://www.w3.org/TR/touch-events/#idl-def-TouchEvent 
};