WebViewをデフォルトのままの場合、端末の戻るボタンを押すとアクティビティ間での移動になってしまいます。今回は、WebView内で端末の戻るボタンを押したときに、WebViewのページを1つ戻す方法をご紹介します。
Activity間の移動ではなくWebViewのページを1つ戻す方法
WebViewを使用しているActivityで何も設定しないと、端末の戻るボタンを押すとアクティビティ間での移動になります。
このように、WebView内で新しくリンクを開い時に、戻るボタンを押しても一番最初のアクティビティの画面に戻ってしまいます。
端末の戻るボタンを押した時にブラウザバック(WebViewのページを1つ戻す)には、アクティビティでonKeyDown
イベントを@Override
する必要があります。
public class MainActivity extends Activity {
private mWebView;
// ...
public boolean onKeyDown(int keyCode, KeyEvent event) {
// 端末の戻るボタンでブラウザバック
if(keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
webView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
このコードを実装したDEMOが以下になります。
戻るボタンを押した時に、ひとつまえのページに戻ることができるようになりました。