1

WebView を使用して、非常に基本的なキャンバス アニメーションを実行し、現在の時刻を文字列として表示するページを表示しようとしています。setTimeout() を使用して、1 秒に 1 回 (アニメーションの場合は 1 秒に 30 回) コンテンツを更新します。

私の問題は、画面に触れるとすぐに、JavaScript の実行が停止することです。

私が得た最も遠いものは、タッチ イベントのリスナーを JavaScript に追加し、イベント ハンドラーで e.preventDefault() を呼び出すことでした。これはほとんどの場合に役立ちましたが、通常の JavaScript イベントが発生しなかったいくつかのケースを見逃すようでした。

次に試したのは、次のようにデフォルトのタッチ ハンドラをオーバーライドすることでした。

myWebView.setOnTouchListener(new View.OnTouchListener() {
  @Override
  public boolean onTouch(View v, MotionEvent event) {
    return true;
  }
});

これは役に立ちましたが、問題は、webview にディスパッチされる前にタッチ イベントを消費し、javascript でタッチ イベントをリッスンできないことです。

これがアニメーションをブロックするものであるため、ズームなどのデフォルトの Android 動作をすべて無効にしたいのですが、これらのイベントを JavaScript で使用できるようにしたいと考えています。

何か案は?

4

1 に答える 1

0

はい、false を返します。true を返す場合は、処理されたイベントを「言う」ことになります。

http://developer.android.com/reference/android/view/View.html#onTouchEvent(android.view.MotionEvent)

于 2013-02-27T21:56:58.743 に答える