Android Studio/java
04. [안드로이드/java] 웹뷰(WebView) 뒤로가기 제어
drizzle0925
2021. 6. 30. 16:00
728x90
웹뷰를 띄우고 나서 스마트폰의 뒤로 가기 버튼을 눌렀을 때 앱이 종료됩니다. 이 현상을 막고 그전 페이지로 이동하기 위해서는 다음과 같은 설정이 필요합니다.
canGoBack() 메서드를 이용하여 웹뷰에서 뒤로 가기 버튼을 눌렀을 때 앱이 종료되는 것이 아니라 그전 페이지로 넘어가게 됩니다.
goBack()을 이용하여 웹뷰에서 뒤로 가기를 설정할 수 있게 됩니다.
아래 코드를 이용하면 웹뷰에서 그 전 페이지로 이동하고 더 이상 이동할 페이지가 없을 경우 앱이 종료됩니다.
@Override
public void onBackPressed() {
if(webView.canGoBack()) {
webView.goBack();
} else {
super.onBackPressed();
}
}
네이버 앱의 경우 뒤로가기 버튼을 2번 눌러서 종료하는데 그런 경우에는 아래 코드를 삽입하면 됩니다.
// 전역변수 선언
private long backBtnTime = 0;
@Override
public void onBackPressed() {
long curTime = System.currentTimeMillis();
long gapTime = curTime - backBtnTime;
if (mWebView.canGoBack()) {
mWebView.goBack();
} else if (0 <= gapTime && 2000 >= gapTime) {
super.onBackPressed();
} else {
backBtnTime = curTime;
Toast.makeText(this, "한번 더 누르면 종료됩니다.", Toast.LENGTH_SHORT).show();
}
참고사이트
https://developer.android.com/reference/android/webkit/WebView
728x90