Android関連 > AndroidのWebView AndroidのWebView について †webViewを使用する為の設定 †(1) AndroidManifest.xml に 以下の記述を行う。 <uses-permission android:name="android.permission.INTERNET" /> (2) レイアウトxml にWebViewを定義する。 例) <WebView android:id="@+id/webView1" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:layout_marginTop="0dp" android:focusable="true" android:focusableInTouchMode="true"> <requestFocus /> </WebView> (3) Activity で WebViewの各種設定を行う。 public class MainActivity extends Activity { private static final String START_URL = "http://example.com/test.php"; protected void onCreate(Bundle savedInstanceState) { Log.d("DEBUG", "onCreate"); // メインViewをセット super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // WebViewの設定 WebView webview = (WebView)findViewById(R.id.webView1); if (webview == null) { return; } // JsInterfaceを追加 webview.getSettings().setJavaScriptEnabled(true); webview.getSettings().setBuiltInZoomControls(true); webview.addJavascriptInterface(new MainJsInterface(this), "Android"); // ページ読み込み後のイベント設定 webview.setWebViewClient(new WebViewClient(){ public void onPageFinished(WebView view, String url) { Log.d("DEBUG", "onPageFinished!(" + url + ")"); } }); // WebViewの状態を復元 if (savedInstanceState != null){ Log.d("DEBUG", "状態を復元"); webview.restoreState(savedInstanceState); return; } else { webview.loadUrl(START_URL); } ・ ・ } /** * 状態保存。<br /> * @param outState */ @Override public void onSaveInstanceState(android.os.Bundle outState){ Log.d("DEBUG", "onSaveInstanceState!!!!!!"); super.onRestoreInstanceState(outState); // WebViewの状態保存 ((WebView)findViewById(R.id.webView1)).saveState(outState); } /** * 状態復元 * @param outState */ @Override public void onRestoreInstanceState(android.os.Bundle outState){ Log.d("DEBUG", "onRestoreInstanceState!!!!!!"); if (outState != null){ Log.d("DEBUG", "状態復元(onRestoreInstanceState)"); // WebViewの状態復元 ((WebView)findViewById(R.id.webView1)).restoreState(outState); } } } |