パソコン・メモメモ備忘録

気の向くままパソコン関係等で気になることを書き記す。時々更新!

WebView でマルチタッチ

Android では、WebView を使うと、Web ブラウザをアプリ内部で呼び出すことができる。アプリ側は、WebView を表示するだけにして、後は、JavaScript でプログラミングする、という方法が結構面白い。ちなみに PhoneGap はそれに近い環境だ。

ただ、WebView 内では使えない機能がいくつかあって、アプリ側と Javascript で連携することで、Javascript からその機能が使えるようにできる場合がある。その一つがマルチタッチだ。iPhone (mobile safari?)だと、もともと Javascript でマルチタッチが使えるのだが、Android では 2.3 の段階ではまだ使えないらしい。

ということで、WebView の Javascript でマルチタッチを使えるようにする方法を考えている。結構探したが、ずばりなサンプルコードは見つからず。まずは、テストとして、Javascript と アプリ(Java) を連携するサンプルコードと、マルチタッチのサンプルコードを合成して、一つ作ってみることにした。結論としては(当たり前だが)、それらしく動くらしいことは確認できた。参考ページは、次の通り。

問題点としては、激しくタッチしていると WebView が固まったというのがある(あまり Java 側から激しく Javascript を呼ぶとまずいのか?)。後は、Java 側から Javascript へどういう形式でマルチタッチ情報を送るのか、という点。これはもっと調査が必要だ。なんか文字列にして送って、Javascript 側でパースするのが確実だが、xml なんかは重いし、固定長でエンコードするのがいいのかなぁ。どうなんだろう?

Java にも eclipse にも Javascript にも不慣れなんで、これだけの事に結構時間がかかった。もう少し Java の勉強しようかいな。

追記 : こちらでコード公開中。