Program Language/Android
[Android] 웹뷰 WebView Back 키를 눌러서 뒤로가기
엠투
2021. 5. 28. 15:18
반응형
[Android] 웹뷰 WebView Back 키를 눌러서 뒤로가기
Back 키를 누르거나 canGoBack() 메소드 이벤트 발생시 앱이 종료가 되는게 아니라 웹페이지 전 페이지로 넘어가게 할 수 있습니다.
goBack()을 이용하여 웹뷰에서 뒤로가기를 설정 할 수 있게 합니다.
// Back 키를 눌러서 뒤로가기 Start
@Override
public boolean onKeyDown(int KeyCode, KeyEvent event){
if((KeyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()){
mWebView.goBack();
return true;
}else{
return super.onKeyDown(KeyCode, event);
}
}
// @Override
// public void onBackPressed() {
// if(mWebView.canGoBack()){
// mWebView.goBack();
// }else{
// super.onBackPressed();
// }
// }
// Back 키를 눌러서 뒤로가기 End
웹뷰를 사용할때 뒤로가기 버튼으로 인해 DB INSERT 가 중복 되는 경우가 발생합니다.
웹페이지에서는 db 인서트 후 location.href 로 임시 페이지로 이동 시켜서 처리하고,
단말기에서 2초 안에 뒤로가기 두번 클릭시 onBackPressed(); 호출 하는 방식으로 수정하였습니다.
// Back 키를 눌러서 뒤로가기 Start
private long backKeyPressedTime = 0;
@Override
public boolean onKeyDown(int KeyCode, KeyEvent event){
long curTime = System.currentTimeMillis();
long gapTime = curTime - backKeyPressedTime;
if((KeyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()){
if(0 <= gapTime && 2000 >= gapTime) {
super.onBackPressed();
return true;
} else {
backKeyPressedTime = curTime;
mWebView.goBack();
return true;
}
}else{
return super.onKeyDown(KeyCode, event);
}
}
반응형