android - Android WebView 中的触摸事件

标签 android webview touchstart

我正在尝试使用 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/

相关文章:

android - 使用 Apache Flex SDK4.8.0、AIR3.4 和 FDT5.6.2 编译生成 "unable to open ' {airHome}/frameworks/libs/air/airglobal.swc'"

android - 如何解决Android支持库和AndroidX之间的冲突?

android - 启动应用程序时 Android 代码中的异常

android - checkmarx 报告了 Volley 的 REFELCTED_XSS_ALL_CLIENT

android - 如何从直接下载链接在android webview中下载文件

javascript - ASP.NET 按钮上的 touchstart touch end 未读取事件

javascript - webview 中有哪些 Titanium 命名空间可用?

Flash 全屏打开时 Android WebView 空白 - ICS 4.0

jquery - <span> 不从样式属性中获取颜色。或 iPad 上的样式表