[[Android関連]] > AndroidのWebView
** AndroidのWebView について [#z0f42f2d]
#setlinebreak(on);
#contents
*** webViewを使用する為の設定 [#i7eb6d52]
(1) AndroidManifest.xml に 以下の記述を行う。
#myhtmlcode(){{
<uses-permission android:name="android.permission.INTERNET" />
}}
(2) レイアウトxml にWebViewを定義する。
例)
#myhtmlcode(){{
<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の各種設定を行う。
#mycode(){{
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);
}
}
}
}}