AndroidアプリでWebViewを使っているとき、「前のページに戻りたいなー」って思ってデフォルトのブラウザと同じようにバックキーを押しちゃうと、Activityが終了しちゃってWebViewが閉じちゃうことってありますよね。
それを防ぐコードは下記のようになります。
バックキーを押したときに、ページを読み進めていれば、前のページに戻る。最初に開いたページまで戻っていれば、Activity終了という風に処理分けしています。
// 端末の戻るボタンを押した時に前のページに戻す @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // ページを進んでいたら if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack() == true) { ReturnPage(); return true; } // トップページならActivity終了 else { Finish(); return true; } } private void ReturnPage() { webView.goBack(); } private void Finish() { finish(); }
コメントを残す