miyabihitoの日記

個人的な技術メモ

WebView

WebView: ブラウザの機能を簡易に利用できるView

使い方は簡単
・レイアウトxml に を記述
マニフェストに下記を追記

○注意点
デフォルトのままだと、リンク押下時やリダイレクトで
標準ブラウザが立ち上がってしまう。
 =>web.setWebViewClient(new WebViewClient()); で対応(webは、WebViewのインスタンス
JavaScriptも無効。
 =>web.getSettings().setJavaScriptEnabled(true);


読み込んでいるJavaScriptからJavaのコードを実行する事が可能。
 =>addJavascriptInterface(Object obj, String name) により、JS側でnameでobjを扱えるようになる。

setWebViewClientに、WebViewClientを継承したインスタンスをセットする事で、
挙動を変えることが出来る。

オーバーライド対象メソッド
・onPageStarted
ページ読み込み開始時に呼出される。
・onPageFinished
ページ読み込み完了時に呼出される。
・onLoadResource
ページおよび、ページを構成する各種リソース(JavaScript, CSS)読み込み時に呼出される。
・shouldOverrideUrlLoading
ページ読み込み時に呼出される。
falseを返す事で処理継続、trueを返すと、リクエストを中止する。(リンクをクリックしても、何も起きない)

etc. http://developer.android.com/reference/android/webkit/WebViewClient.html

参考資料:http://shogo82148.github.com/blog/2012/11/24/no-more-webview/
     http://codezine.jp/article/detail/6618