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);
		}
	}
}

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-09-16 (水) 22:08:45 (2062d)