AndroidでWebコンテンツの表示
Webコンテンツを表示するには
WebViewクラスのloadUri()を使う
まず、
private WebView mWebView;
でメンバ変数にする
次に、onCreate()の中で
mWebView = new WebView(this); setContentView(mWebView);
でWebViewが使えるようにする
ただし、このままだとJavascriptが無効なので
mWebView.getSettings().setJavascriptEnabled(true);
でJavascriptを有効にする
そのぶんセキュリティーは落ちるので注意
あとは、表示するWebページを設定
mWebView.setWebViewClient(new WebViewClient()); mWebView.loadUri("http://www.google.co.jp");
あと、WebViewを扱うときには、終了したら破棄する処理も必要
[@Override]
public void onDestroy(){
super.onDestroy();
mWebView.stopLoading();
ViewGroup webParent = (ViewGroup)mWebView.getParent();
if(webParent != null){
webParent.removeView(mWebView);
}
mWebView.destroy();
}
[/java]
これは、AndroidのWebViewは
Javaプログラムだけでなく
ネイティブのCのコードも使っているかららしい
このため、WebViewを明示的に破棄しないと
メモリの解放ができない
このため、Activity.onDestroyハンドラでWebViewクラスの
destroy()を呼んでいる
また、このときに
removeView()でActivityから切り離してから
destroy()を呼ぶこと
これをやらないと
Error: WebViewdestroy() called while still attached
とエラーが発生する