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 で使用できるようにしたいと考えています。
何か案は?