火曜日, 11月 08, 2011
webviewclient

ちまたでは、Dolphin とかの信頼性がどうも怪しいらしい。
などの理由から、webview を使った android アプリをちょっとつくってみようかと思い立つ。
自分で作れば、そういったセキュリティ心配しなくていいからね。
と、やりはじめた。
しかしながら、eclipse の使い方からいきなり厳しかったりする。
我ながらこれらのツールから離れてるなあと思う。
本題。
基本的にはwebviewをactivityに結びつければ表示は可能。
でもそれだけではデフォルトのウェブブラウザが起動してしまって、意味がなかった。
レイアウトでいくら指定しても画面遷移が発生してうまくいかない。
ちょっと調べた(ぐぐるだけだが)限りでは
webviewclient をセットすることで WebView の振る舞いが変わるらしい記述があった。
webview.setWebViewClient(new WebViewClient());
の一文が必要なよう。これを入れることで、見事に同じWebViewで表示が切り替わるようになった。
これなあ、結構重要なはずやのにポイントとして記述しているところって少ないと思う。
逆にいうとカスタムのブラウザ作る場合には絶対にいじる部分だと思われ、知ってて当然という感じ。
推測するに、デフォルトブラウザは内部でWebViewClientをいじっているものをあらかじめ、setWebViewClient() しているのではないだろうか。
そのため 素の WebViewClient を new してsetWebViewClient()すると一切の振る舞いがなくなると。
まずは、できるだけなんにもしないWebViewに仕立て上げる。
その上でやりたいことを追加するつもり。