WebViewで端末のバックキーの挙動を変える


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();
	}

※改稿しました
WebViewで端末のバックキーの挙動を変える 改

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください