Android WebView中的触摸事件

问题描述:

我想在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中启用触摸事件的配置设置?

好的。我解决了它。

我仍然试图从Page.X & Page.Y值而不是event.targetTouches。而且我假设坐标可以从touchend中获得,但事实上并非如此。你必须在touchmove中追踪它们。