WebViewを使ってアプリ内にWeb画面を表示する|Android開発
android.webkit.WebView
を使って、アプリにWeb画面を表示する方法です。
インターネット接続権限の追加
app\src\main\AndroidManifest.xmlに以下の1行を追加します。
<uses-permission android:name="android.permission.INTERNET"/>
レイアウトファイル
レイアウトファイルでWeb画面を表示したい場所にandroid.webkit.WebView
を追加します。
<WebView
android:id="@+id/my_web_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Web画面の読み込み
ActivityでWebView
に読み込むURLを指定します。あまり重いサイトだとタイムアウトするので、まずは軽いサイトで試しましょう。
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web);
mWebView = findViewById(R.id.my_web_view);
mWebView.setWebViewClient(new WebViewClient());
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("https://www.google.co.jp/");
}
setWebViewClient()
setWebViewClient()
を設定することで、リンククリック時にブラウザを起動せずにWebView
内で画面遷移するようになります。
setJavaScriptEnabled()
true
を与えることでJavaScriptが有効になります。
loadUrl()
表示する画面のURLを指定します。
実行例
Backキー処理
Backキーで前の画面に戻るようにする処理です。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_BACK) {
if (mWebView.canGoBack()) {
// 戻るページがある場合.
mWebView.goBack();
} else {
finish();
}
return true;
}
return super.onKeyDown(keyCode, event);
}