3

HTML5 キャンバスとタッチを使用して、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 は、タッチ イベントに応答しないようです。「touchstart」と「touchend」を「mousedown」と「mouseup」に置き換えると、mousedown イベントが認識されるようです。しかし、mouseup は適切に動作しません (つまり、ブラウザで実行されている同じコードのように)。

私は明らかに何かが欠けていますか?javascriptでタッチイベントを有効にするために必要な構成設定は?

4

1 に答える 1

1

わかった。解決しました。

event.targetTouches からではなく、Page.X と Page.Y の値を取得しようとしていました。そして、実際にはそうではないのに、タッチエンドで座標が利用可能であると想定していました。タッチムーブ中にそれらを追跡する必要があります。

于 2013-02-14T01:52:17.380 に答える