http://domoyosi.tistory.com/26
네이버, 다음 등 포털사이트 및 여러 하이브리드앱들을 살펴보면
메인페이지에서 뒤로가기를 두번 누르면 앱이 종료되는 것을 볼 수 있다.
구현방법이야 여러가지 케이스가 있을 수 있겠으나
webview를 사용한다는 점을 이용하기로 했다.
webview는 현재 로드한 페이지의 url을 얻을 수 있다.
1 | webView.getOriginalUrl() |
1 | webView.getUrl() |
둘다 String형으로 현재 페이지의 url을 뱉어준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | private final Handler handler = new Handler(); // BACK 2번 클릭 시 종료 핸들러. 플래그 private Handler mHandler; private boolean mFlag = false ; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // 디바이스의 키 이벤트가 발생했는데, 뒤로가기 이벤트일때 if (keyCode == KeyEvent.KEYCODE_BACK) { // 현재 페이지가 메인페이지 일경우 toast를 출력하고 종료여부를 결정한다. if ( webView.getOriginalUrl().equalsIgnoreCase(MAIN_URL) || webView.getOriginalUrl().equalsIgnoreCase(MAIN_URL+ "index.jsp" ) ) { if (!mFlag) { Toast.makeText( this , "'뒤로'버튼을 한번 더 누르시면 종료됩니다." , Toast.LENGTH_SHORT).show(); // 종료안내 toast 를 출력 mFlag = true ; mHandler.sendEmptyMessageDelayed(0, 2000); // 2000ms 만큼 딜레이 return false ; } else { // 앱 종료 code } } else { // 뒤로 가기 실행 if ( webView.canGoBack() ) { webView.goBack(); return true ; } } } </p> |
line 16 : 웹소스내에 메인페이지로 가는 링크가 "/" 이 아닌 "/index.jsp" 로 해둔 경우가 있을 수도 있으므로 index.jsp 를 추가하여 필터링한다.(사용하시는 분들은 asp, aspx, php 등으로 수정해서 사용하시면 됩니다.)
반응형
'차근차근 > Android' 카테고리의 다른 글
안드로이드 apk 파일 만들기 (0) | 2014.12.02 |
---|---|
[안드로이드] APK 설치시 DB파일 포함 (0) | 2014.12.02 |
안드로이드에서 웹뷰(WebView) 사용법 (0) | 2014.11.17 |
webview 특정상황에 뒤로가기버튼 먹통. 귀찮아정말 (0) | 2014.11.17 |
android - WebView 사용 하기 (0) | 2014.11.13 |