2013-02-13 73 views
2

我想在Android中使用HTML5畫布和觸摸來製作WebView應用程序。Android WebView中的觸摸事件

這就是我認爲是我的代碼的相關部分:

在的onCreate:

WebView myWebView = (WebView) findViewById(R.id.webview); 
WebSettings webSettings = myWebView.getSettings(); 
webSettings.setJavaScriptEnabled(true); 
    ... 
    myWebView.loadData(content,"text/html", "UTF-8"); 

凡字符串「內容」包含HTML/JavaScript的它包含以下行的塊。

this.canvas = document.getElementById(AN_ID); // AN_ID is id of a canvas tag 
    ... 
    this.canvas.addEventListener("touchstart", function(e) { 
    ... 
    }, false); 

    this.canvas.addEventListener("touchend", function(e) { 
    ... 
    }, false); 

而且activity_main.xml中文件包含標籤

<WebView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/webview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
/> 

但是我的測試設備,一臺Nexus 7,似乎沒有給觸摸事件作出響應。如果我用「mousedown」和「mouseup」替換「touchstart」和「touchend」,似乎mousedown事件被識別。但是,mouseup不能正常運行(即,像在瀏覽器中運行的代碼一樣)。

我是否明顯缺少一些例如。我需要在JavaScript中啓用觸摸事件的配置設置?

回答

1

好的。我解決了它。

我仍然試圖從Page.X & Page.Y值而不是event.targetTouches。而且我假設座標可以從touchend中獲得,但事實上並非如此。你必須在touchmove中追蹤它們。