홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송 메인홈 1대1상담
운.영.자.1대1.상담
온라이브음악방송
온라이브스토어(앱다운로드)
아리랑가요(무료음악채널)
뽕짝아가씨(무료음악채널)
okTrot(무료음악채널)
전통가요(무료음악채널)

환상의뽕짝파티 무료음악
명작트로트메들리 무료음악
트로트메들리관광 무료음악
보안∵서버∵쿠키
윈도우∵프레임
이미지∵배경
시간∵달력∵계산
상태바∵타이틀바
음악∵영상
폼∵전송∵테이블
키보드∵마우스
효과∵링크∵메뉴
Script∵php
기타
PHP 강좌
윈도우관련팁
웹관련팁
홈페이지제작팁
기본강좌
레지스트리
윈도우서버
리눅스서버
Android
http requestWebViewClient [Android]
3년 전
ebView  webView  =  (WebView)  findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
//  각종  알림  및  요청을  받게되는  WebViewClient를  설정합니다.  -  option
webView.setWebViewClient(new  CustomWebViewClient());
//  크롬  핸들러  설정.  이  핸들러는  자바  스크립트  대화  상자,  favicon,  제목과  진행상황  처리에  
//  사용하기  위해  WebChromeClient을  구현한  것입니다.  -  option
webView.setWebChromeClient(new  CustomWebChormeClient());
webView.loadUrl("...");

private  class  CustomWebViewClient  extends  WebViewClient  {

        /**  ↓↓  WebView에서  처음  한  번만  호출되는  메쏘드  ↓↓
          *  페이지  로딩이  시작된  것을  알립니다.  이  메쏘드가  각각의  main  frame이  iframe에  
          *  페이지를  로드하기  위해  한번  호출되거나    frameset이  main  frame에  대해  이  메쏘드를  
          *  한번  호출할  것  입니다.  이  메쏘드가  임베디드  프레임  내용이  변경되었을  때  호출되지
          *  않는다는  것도  뜻합니다.  예를  들면,  iframe이  있는  대상  링크를  클릭한  것  입니다.
          *  /
        @Override
        public  void  onPageStarted(WebView  view,  String  url,  Bitmap  favicon)  {
                super.onPageStarted(view,  url,  favicon);
        }
      
        /**
          *  WebView가  주어진  URL로  지정된  리소스를  로드할  것이라고  알립니다.
          *  페이지  로딩이  완료될  때까지  여러번  호출됩니다.  페이지가  나뉘어서  로딩되나  봅니다.
          *  /
        @Override  
        public  void  onLoadResource(WebView  view,  String  url)  {
                super.onLoadResource(view,  url);
        }
      
        /**
          *  방문한  링크를  데이터베이스에  업데이트한다고  알립니다.
          *  /
        @Override
        public  void  doUpdateVisitedHistory(WebView  view,  String  url,  boolean  isReload)  {  
                Log.i("WebView",  "History:  "  +  url  );
                super.doUpdateVisitedHistory(view,  url,  isReload);
        }
/*  결과  (url이  변할  때  마다)
History:  http://www.abc.com/djfk...
History:  http://www.abc.com/djfk.../fdfd
*/
    
        /**  ↓↓  WebView에서  처음  한  번만  호출되는  메쏘드  ↓↓
          *  페이지  로딩이  완료된  것을  알립니다.  이  메쏘드는  메인  프레임에  대해서만  호출됩니다.
          *  이  메쏘드가  호출되었을  때,  picture  rendering은  아직  업데이트되지  않을  수  있습니다.
          *  새로운  Picture가  있다는  사실을  알기위해,  onNewPicture(WebView,  Picture)  메쏘드를
          *  사용합니다.
          *  /
        @Override
        public  void  onPageFinished(WebView  view,  String  url)  {
                super.onPageFinished(view,  url);
        }
      
        /**
          *  As  the  host  application  if  the  browser  should  resend  data  as  the  requested  page
          *  was  a  result  of  a  POST.  기본적으론  데이터를  재발송하지  않는  것입니다.
          *  /
        @Override
        public  void  onFormResubmission(WebView  view,  Message  dontResend,
                        Message  resend)  {
                super.onFormResubmission(view,  dontResend,  resend);
        }  
    
        /**
          *  호스트  응용  프로그램에게  오류를  보고합니다.  이러한  오류는  복구할  수  없습니다.
          *  (예,  main  resource를  사용할  수  없는  상태)  errorCode  매개  변수는
          *  WebViewClient.ERROR_*  상수  중  하나에  해당합니다.
          *  /
        @Override
        public  void  onReceivedError(WebView  view,  int  errorCode,
                        String  description,  String  failingUrl)  {
                super.onReceivedError(view,  errorCode,  description,  failingUrl);
  
                switch(errorCode)  {
                case  ERROR_AUTHENTICATION:  break;                              //  서버에서  사용자  인증  실패
                case  ERROR_BAD_URL:  break;                                                      //  잘못된  URL
                case  ERROR_CONNECT:  break;                                                    //  서버로  연결  실패
                case  ERROR_FAILED_SSL_HANDSHAKE:  break;        //  SSL  handshake  수행  실패
                case  ERROR_FILE:  break;                                                                    //  일반  파일  오류
                case  ERROR_FILE_NOT_FOUND:  break;                              //  파일을  찾을  수  없습니다
                case  ERROR_HOST_LOOKUP:  break;                      //  서버  또는  프록시  호스트  이름  조회  실패
                case  ERROR_IO:  break;                                                            //  서버에서  읽거나  서버로  쓰기  실패
                case  ERROR_PROXY_AUTHENTICATION:  break;      //  프록시에서  사용자  인증  실패
                case  ERROR_REDIRECT_LOOP:  break;                              //  너무  많은  리디렉션
                case  ERROR_TIMEOUT:  break;                                                    //  연결  시간  초과
                case  ERROR_TOO_MANY_REQUESTS:  break;          //  페이지  로드중  너무  많은  요청  발생
                case  ERROR_UNKNOWN:  break;                                                //  일반  오류
                case  ERROR_UNSUPPORTED_AUTH_SCHEME:  break;  //  지원되지  않는  인증  체계
                case  ERROR_UNSUPPORTED_SCHEME:  break;                    //  URI가  지원되지  않는  방식
                }
        }
    
        /**
          *  인증  요청을  처리한다고  알립니다.  기본  동작은  요청을  취소하는  것입니다.
          *  /
        @Override
        public  void  onReceivedHttpAuthRequest(WebView  view,
                        HttpAuthHandler  handler,  String  host,  String  realm)  {
                super.onReceivedHttpAuthRequest(view,  handler,  host,  realm);
        }
    
        /**
          *  WebView가  변화하기위해  scale이  적용된다고  알립니다.
          *  /
        @Override
        public  void  onScaleChanged(WebView  view,  float  oldScale,  float  newScale)  {
                super.onScaleChanged(view,  oldScale,  newScale);
        }

        /**
          *  이  메쏘드는  사용이  중지되었습니다.  이  메쏘드는  더이상  호출되지  않습니다.  
          *  WebView가  재시작된  루프를  발견하면,  로드가  취소됩니다
          *  /
        @Override
        public  void  onTooManyRedirects(WebView  view,  Message  cancelMsg,
                        Message  continueMsg)  {
                super.onTooManyRedirects(view,  cancelMsg,  continueMsg);
        }

        /**  ↓↓  잘못된  키  입력이  있을  경우  호출되는  메쏘드  ↓↓
          *  키가  WebView에  의해  처리되지  않았음을  호스트  응용  프로그램에게  알림.
          *  시스템  키를  제외하고,  WebView는  shouldOverrideKeyEvent가  true를  반환하는  경우나
          *  일반적인  flow에서  항상  키  이벤트를  처리합니다.  키  이벤트가  발생된  곳으로  부터
          *  비동기적으로  호출됩니다.  호스트  응용  프로그램에게  처리되지  않은  키  이벤트를  처리할
          *  기회를  제공합니다.
          *  /
      @Override
      public  void  onUnhandledKeyEvent(WebView  view,  KeyEvent  event)  {

            super.onUnhandledKeyEvent(view,  event);
      }
    
        /**  ↓↓  잘못된  키  입력이  있을  경우  호출되는  메쏘드  ↓↓
          *  호스트  응용  프로그램에게  동기적으로  키  이벤트를  처리할  기회를  줍니다.  예:  메뉴  바로
          *  가기  키  이벤트를  이런식으로  필터링해야합니다.  true를  반환할  경우,  WebView는  키  이벤트를
          *  처리하지  않습니다.  false를  반환할  경우,  WebView  항상  키  이벤트를  처리합니다.  So  none
          *  of  the  super  in  the  view  chain  will  see  the  key  event.  기본  동작은  false를  반환합니다.
          *  /
        @Override
        public  boolean  shouldOverrideKeyEvent(WebView  view,  KeyEvent  event)  {
                return  super.shouldOverrideKeyEvent(view,  event);
        }
      
        /**
          *  새로운  URL이  현재  WebView에  로드되려고  할  때  호스트  응용  프로그램에게  컨트롤을
          *  대신할  기회를  줍니다.  WebViewClient가  제공되지  않으면,  기본적으로  WebView는  URL에
          *  대한  적절한  핸들러를  선택하려고  Activity  Manager에게  물어봅니다.  WebViewClient가
          *  제공되면,  호스트  응용  프로그램이  URL을  처리한다는  의미인  true를  반환거나  현재
          *  WebView가  URL을  처리한다는  의미인  false를  반환합니다.
          *  /
        public  boolean  shouldOverrideUrlLoading(WebView  view,  String  url)  {
                return  super.shouldOverrideUrlLoading(view,  url);
        }
}
[출처]  Android  WebViewClient  사용하기  1/2|작성자  jolangma





WebView  webView  =  (WebView)  findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
//  각종  알림  및  요청을  받게되는  WebViewClient를  설정합니다.  -  option
webView.setWebViewClient(new  CustomWebViewClient());
//  크롬  핸들러  설정.  이  핸들러는  자바  스크립트  대화  상자,  favicon,  제목과  진행상황  처리에  
//  사용하기  위해  WebChromeClient을  구현한  것입니다.  -  option
webView.setWebChromeClient(new  CustomWebChormeClient());
webView.loadUrl(url);

private  class  CustomWebChormeClient  extends  WebChromeClient  {

        /**
          *  페이지를  로딩하는  현재  진행  상황을  전해줍니다.
          *  newProgress    현재  페이지  로딩  진행  상황,  0과  100  사이의  정수로  표현.(0%  ~  100%)
          */
        @Override
        public  void  onProgressChanged(WebView  view,  int  newProgress)  {
                Log.i("WebView",  "Progress:  "  +  String.valueOf(newProgress));  
                super.onProgressChanged(view,  newProgress);
        }
/*  결과  :  
Progress:  10
Progress:  15
Progress:  35
...
Progress:  76
Progress:  100
*/

        /**
          *  현재  페이지에  새로운  favicon이  있다고  알립니다.
          *  icon  현재  페이지의  favicon이  들어있는  비트맵    
          */
        @Override
        public  void  onReceivedIcon(WebView  view,  Bitmap  icon)  {
                super.onReceivedIcon(view,  icon);
        }
/*  
favicon이란:
일반적으로  웹  브라우저의  URL이  표시되기  전에  특정  웹사이트와  관련된  16  ×  16  픽셀  아이콘  
*/

        /**
          *  문서  제목에  변경이  있다고  알립니다.
          *  title    문서의  새로운  타이틀이  들어있는  문자열    
          */
        @Override
        public  void  onReceivedTitle(WebView  view,  String  title)  {
                super.onReceivedTitle(view,  title);
        }
/*    아래처럼  title  태그  사이의  값을  가져옵니다.
<title>  LG텔레콤  전자결제  서비스  </title>
*/

        @Override
        public  Bitmap  getDefaultVideoPoster()  {
                return  super.getDefaultVideoPoster();
        }

        @Override
        public  View  getVideoLoadingProgressView()  {
                return  super.getVideoLoadingProgressView();
        }

        @Override
        public  void  getVisitedHistory(ValueCallback<String[]>  callback)  {
                super.getVisitedHistory(callback);
        }

        @Override
        public  void  onCloseWindow(WebView  window)  {
                  super.onCloseWindow(window);
        }

        @Override
        public  void  onConsoleMessage(String  message,  int  lineNumber,  String  sourceID)  {
                super.onConsoleMessage(message,  lineNumber,  sourceID);
        }

        @Override
        public  boolean  onCreateWindow(WebView  view,  boolean  dialog,
                        boolean  userGesture,  Message  resultMsg)  {
                  return  super.onCreateWindow(view,  dialog,  userGesture,  resultMsg);
        }

        @Override
        public  void  onExceededDatabaseQuota(String  url,  String  databaseIdentifier,  
                        long  currentQuota,  long  estimatedSize,  long  totalUsedQuota,
                        QuotaUpdater  quotaUpdater)  {
                super.onExceededDatabaseQuota(url,  databaseIdentifier,  currentQuota,
                                estimatedSize,  totalUsedQuota,  quotaUpdater);
        }

        @Override
        public  void  onGeolocationPermissionsHidePrompt()  {
                  super.onGeolocationPermissionsHidePrompt();
        }

        @Override
        public  void  onGeolocationPermissionsShowPrompt(String  origin,
                        Callback  callback)  {
                  super.onGeolocationPermissionsShowPrompt(origin,  callback);
        }

        @Override
        public  void  onHideCustomView()  {
                super.onHideCustomView();
        }
  
        /**
          *  자바  스크립트  경고  대화  상자를  디스플레이한다고  클라이언트에게  알려줍니다.  
          *  클라이언트가  true를  반환할  경우,  WebView는  클라이언트가  대화  상자를  처리할  수  있다고
          *  여깁니다.  클라이언트가  false를  반환할  경우,  WebView는  실행을  계속합니다.
          *  /
        @Override
        public  boolean  onJsAlert(WebView  view,  String  url,  String  message,
                        JsResult  result)  {
                  return  super.onJsAlert(view,  url,  message,  result);
        }
  
        /**
          *  현재  페이지에서  나와  탐색을  확정하는  대화  상자를  디스플레이한다고  클라이언트에게
          *  알려줍니다.  이것은  자바  스크립트  이벤트  onbeforeunload()의  결과입니다.  클라이언트가
          *  true를  반환하는  경우,  WebView는  클라이언트가  대화  상자를  처리하고  적절한  JsResult
          *  메쏘드를  호출할  것이라고  여깁니다.  클라이언트가  false를  반환하는  경우,  true의  기본값은
          *  현재  페이지에서  나와  탐색하기를  수락하기  위한  자바  스크립트를  반환하게  될  것입니다.
          *  기본  동작은  false를  반환하는  것입니다.  JsResult를  true로  설정한  것은  현재  페이지에서  나와
          *  탐색할  것이고  false로  설정한  것은  탐색을  취소할  것입니다.
          *  /
        @Override
        public  boolean  onJsBeforeUnload(WebView  view,  String  url,
                        String  message,  JsResult  result)  {
                return  super.onJsBeforeUnload(view,  url,  message,  result);
        }
  
        /**
          *  사용자에게  확인  대화  상자를  디스플레이한다고  클라이언트에게  알려줍니다.  클라이언트가
          *  true를  반환하는  경우,  WebView는  클라이언트가  확인  대화  상자를  처리하고  적절한
          *  JsResult  메쏘드를  호출할  수  있다고  여깁니다.  클라이언트가  false를  반환하는  경우  false의
          *  기본값은  자바  스크립트로  반환될  것  입니다.  기본  동작은  false를  반환하는  것입니다.
          *  /
        @Override
        public  boolean  onJsConfirm(WebView  view,  String  url,  String  message,
                        JsResult  result)  {
                  return  super.onJsConfirm(view,  url,  message,  result);
        }
  
        /**
          *  사용자에게  프롬프트  대화  상자를  디스플레이한다고  클라이언트에게  알려줍니다.
          *  클라이언트가  true를  반환하는  경우,  WebView는  클라이언트가  확인  대화  상자를  처리하고
          *  적절한  JsResult  메쏘드를  호출할  수  있다고  여깁니다.  클라이언트가  false를  반환하는  경우
          *  false의  기본값은  자바  스크립트로  반환될  것  입니다.  기본  동작은  false를  반환하는  것입니다.
          *  /
        @Override
        public  boolean  onJsPrompt(WebView  view,  String  url,  String  message,
                        String  defaultValue,  JsPromptResult  result)  {
                    return  super.onJsPrompt(view,  url,  message,  defaultValue,  result);
        }
  
        /**
          *  자바  스크립트  실행  제한  시간을  초과했다고  클라이언트에게  알려줍니다.  그리고
          *  클라이언트가  실행을  중단할지  여부를  결정할  수  있습니다.  클라이언트가  true를  반환하는
          *  경우,  자바  스크립트가  중단됩니다.  클라이언트가  false를  반환하는  경우,  계속  실행됩니다.
          *  참고로  지속적인  실행  상태에서는  제한  시간  카운터가  재설정되고    스크립트가  다음  체크
          *  포인트에서  완료되지  않을  경우  계속  콜백되어질  것집니다.
          *  /
        @Override
        public  boolean  onJsTimeout()  {
                return  super.onJsTimeout();
        }

      

        @Override
        public  void  onReachedMaxAppCacheSize(long  spaceNeeded,
                        long  totalUsedQuota,  QuotaUpdater  quotaUpdater)  {
                super.onReachedMaxAppCacheSize(spaceNeeded,  totalUsedQuota,  quotaUpdater);
        }

        

        @Override
        public  void  onReceivedTouchIconUrl(WebView  view,  String  url,
                        boolean  precomposed)  {
                super.onReceivedTouchIconUrl(view,  url,  precomposed);
        }

        @Override
        public  void  onRequestFocus(WebView  view)  {
                super.onRequestFocus(view);
        }

        @Override
        public  void  onShowCustomView(View  view,  CustomViewCallback  callback)  {
                super.onShowCustomView(view,  callback);
        }

}
추천추천 : 184 추천 목록
번호 제목
1,320
 윈도우 10 기본 앱 삭제 및 복구
1,319
 meta 태그 http-equiv 설정방법과 차이점
1,318
 구글(Google)검색에서 고급연산자를 이용하여 많은 정보를 얻는 방법
1,317
 프로그램 없이 하드디스크 복사 및 백업하기
1,316
 Windows7 업데이트 기록 삭제방법
1,315
 포토샵 psd 파일 연결 레지스트리(registry) 편집
1,314
 윈도 10 최신 업데이트 후 인터넷 속도의 저하가 발생할 때 조치 사항
1,313
 Autotuning level 해제 (윈도우비스타 이상 윈도우)인터넷 속도 빠르게 하는 방법
1,312
 윈도우에서 특정프로세스를 일괄 종료하는법
1,311
 MediaPlayer 클래스 사용법
1,310
 안드로이드에서 audio player 실행하기
1,309
 [Android] MediaPlayer 음악재생기 만들기
1,308
 Eclipse와 Android NDK 연동하기
1,307
 Android Sliding Drawer Functionality 안드로이드 슬라이딩 드로우 예제 sample
1,306
 Android Speech To Text
1,305
 Android WebPageLoader with progress-bar
1,304
 Android Text To Speech(TTS)
1,303
 Android Playing Audio from a web url
1,302
 Button height different from background height in Android image design
1,301
 Android Getting Started with Material Design
1,300
 Using toast inside timertask perfect
1,299
 네트워크 상태 [Android]
1,298
 Webview source [Android]
1,297
 공유 Intent [Android]
1,296
 intent uri 모음 [Android]
목록
추억의가요방(가사포함)
인기절정뽕짝파티
인기트로트모음
지루박디스코메들리
밤무대애창곡
전자올겐경음악
세월따라노래따라
가슴시린트로트
트로트쌍쌍파티
7080추억속으로
종합성인가요방
못잊을옛날노래
카바레 음악
트롯디스코팡팡
관광 메들리
트롯카페
가요감상실
추억의옛노래
스페셜가요광장
BillBoard Free
추천가요모음
경음악.전자올겐
스페셜음악여행
WOLRD POPs
K-POP\BillBoard
POP TOP BEST

최신인기가요특집
추천가요\인기
F뮤직 인기\발라드
F뮤직 애창\트로트
트로트성인가요
인기가요
프리미엄 POP
경음악\기타
프리미엄 최신가요
프리미엄 성인가요
뮤직트로트 부산광역시부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.