Android

Android - 端末の戻るボタンを押した時にWebViewのページを1つ戻すには?

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が以下になります。

戻るボタンを押した時に、ひとつまえのページに戻ることができるようになりました。

参考
【Android】WebView使用時の設定とTipsまとめ - forus TECH

-Android