我正在尝试使用 HTML5 Canvas 和触摸在 Android 中制作 WebView 应用。
这是我认为与我的代码相关的部分:
在 onCreate 中:
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
...
myWebView.loadData(content,"text/html", "UTF-8");
其中字符串“content”包含一个包含以下行的 html/javascript block 。
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。我假设可以从 in touchend 获得坐标,但实际上并没有。你必须在触摸移动期间跟踪它们。
关于android - Android WebView 中的触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14846071/