webviewを使ってWebアプリを作成する際に必要な設定まとめ
最近JavaScriptがはやってる
この流行でNativeとWebアプリのハイブリッドアプリを作成することが多くなろうからそういうときに使うWebViewの設定をまとめてみる。
plugin使用可能
Flashとか使うときに必要
webView.getSettings().setPluginsEnabled(true);
キャッシュを使用しない
開発の最中はキャッシュをOFFにしないと変わらない場合があるからわかりにくい
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
バックキーで戻る
これをしないとActivityが閉じてしまう。閉じてもいい場合は設定する必要ないけど。
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK){ if(webView.canGoBack() ) { webview.goBack(); return false; } } return super.onKeyDown(keyCode, event); }
Linkを同一WebViewで開く
WebViewClientを設定してあげれば同一WebViewで開ける
webView.setWebViewClient(new WebViewClient());
mailtoとかmarketとかを別アプリで開く
このままだとリンクはすべてWebViewで開こうとしてしまうからhttpとhttp以外は別ActivityにIntentを投げる
@Override public boolean shouldOverrideUrlLoading(WebView webView, String url) { if(url.startsWith("http:") || url.startsWith("https:")) { return false; } Uri uri = Uri.parse(url); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); return true; }
まとめ
ほかにもぱっと浮かぶものとしてActivityとJavaScritの連携とかあるけど、それはいろんなところに書いてあるからそっちを参照してほしい。これぐらいやっておけばAndroidで簡易的なブラウザとして動くんじゃないかな。
忘れてることがもしあったら追記します。
ほかにもこんな設定あったらってのがあったら教えてくださいな。