ȸ¿ø°¡ÀԡžÆÀ̵ð/ºñ¹øã±â
ȨÀ¸·Î


[Android] Webview ¸Þ¼Òµå
7³â Àü
        ¸ÕÀú  WebViewÀÇ  ¸¸µå´Â  ¹æ¹ýÀ»  ¾Ë¾Æ  ºÃ´Ù.

        ±Ùµ¥  WebView¸¦  ¸¸µçµÚ¿¡  È®ÀÎÇØ  º¸¸é  WebView¿¡¼­  »õ·Î¿î  Url  Á¢¼ÓÀÌ  ÀϾ³¯¸é

        »õ·Î¿î  Ã¢ÀÌ  ¶ß´Â°É  º¼  ¼ö  ÀÖ´Ù.  À̴  ±âº»ÀûÀ¸·Î  WebView¿¡¼­  »õ·Î¿î  Url  Á¢¼Ó½Ã

        ½Ã½ºÅÛ¿¡¼­  »õ·Î¿î  Ã¢¿¡´Ù°¡  ·ÎµùÇϵµ·Ï  ½ÃÅ°´Â  °ÍÀε¥,  ÀÌ°ÍÀÌ  Çѵιø¾¿  ¸¹¾ÆÁö¸é

        ¸Þ¸ð¸®  °ü¸®»ó¿¡µµ  º°·Î  µµ¿òÀÌ  ¾ÈµÈ´Ù.  ±×·³  ¾îÂîÇؾߠ µÉ±î..

        ±×·¡¼­  Àִ  °ÍÀÌ  WebViewClient  ¿Í  WebChromeClient  ÀÌ´Ù.

        À̹ø  Àå¿¡´Â  webViewClient  class  ¿¡  ´ëÇؼ­  ¾Ë¾Æº¸ÀÚ.  

        ÀÏ´Ü  WebViewClient  ´Â  »õ·Î¿î  Class¿¡  WebViewClient¸¦  »ó¼Ó  ¹Þ¾Æ¼­  ¸¸µé¾îµµ  µÇ°í

        private  class  WebClientClass  extends  WebViewClient  {
                ~~~~~~  ³»¿ë  ~~~~~~~~~~~~~~~~~~~~~~
        }

        ³»ºÎ¿¡¼­  new·Î  »ý¼ºÇصµ  µÈ´Ù.

        WebView.setWebViewClient(new  WebViewClient(){
                ~~~~~~  ³»¿ë  ~~~~~~~~~~~~~~~~~~~~~~
        }

        WebViewClient  Class  ÇÔ¼öµé¿¡  ´ëÇؼ­  ¾Ë¾Æº¸ÀÚ.

        
        1.  onPageStarted()
        
        
        ·ÎµùÀÌ  ½ÃÀ۵ɶ§..

        WebView¿¡¼­  Ã³À½  ÇÑ  ¹ø¸¸  È£ÃâµÇ´Â  ¸Þ½îµå  ÆäÀÌÁö  ·ÎµùÀÌ  ½ÃÀ۵Ƞ °ÍÀ»  ¾Ë¸³´Ï´Ù.  

        
  
        @Override
        public  void  onPageStarted(WebView  view,  String  url,  Bitmap  favicon)  {
                super.onPageStarted(view,  url,  favicon);
        }
        




        
        2.  onLoadResource()
        

        WebView°¡  ÁÖ¾îÁø  URL·Î  ÁöÁ¤µÈ  ¸®¼Ò½º¸¦  ·ÎµåÇÒ  °ÍÀ̶ó°í  ¾Ë¸³´Ï´Ù.

        ÆäÀÌÁö  ·ÎµùÀÌ  ¿Ï·áµÉ  ¶§±îÁö  ¿©·¯¹ø  È£ÃâµË´Ï´Ù.  ÆäÀÌÁö°¡  ³ª´µ¾î¼­  ·ÎµùµÇ³ª  º¾´Ï´Ù.

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

      

        
        3.  doUpdateVisitedHistory()
        

        ¹æ¹®ÇÑ  ¸µÅ©¸¦  µ¥ÀÌÅͺ£À̽º¿¡  ¾÷µ¥ÀÌÆ®ÇÑ´Ù°í  ¾Ë¸³´Ï´Ù.

        
  
        @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
        */

    
        
        4.  onPageFinished()
        

        WebView¿¡¼­  Ã³À½  ÇÑ  ¹ø¸¸  È£ÃâµÇ´Â  ¸Þ½îµå.  ÆäÀÌÁö  ·ÎµùÀÌ  ¿Ï·áµÈ  °ÍÀ»  ¾Ë¸³´Ï´Ù.

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

    

        
        5.  onReceivedError()
        
    
        È£½ºÆ®  ÀÀ¿ë  ÇÁ·Î±×·¥¿¡°Ô  ¿À·ù¸¦  º¸°íÇÕ´Ï´Ù.  ÀÌ·¯ÇÑ  ¿À·ù´Â  º¹±¸ÇÒ  ¼ö  ¾ø½À´Ï´Ù.

        À¥ºä´Â  ÀÎÅͳÝÀÌ  ¿­°áµÇ¾î  ÀÖÁö  ¾Ê¾ÒÀ»¶§  ÁÖ¼Ò°¡  ³ëÃâµÇ´Â  ´ÜÁ¡ÀÌ  ÀÖ´Ù.  ÀÌ·²°æ¿ì  urlÁÖ¼Ò¸¦  º¸¾È»ó  ³ëÃâµÇ¸é  ¾ÈµÇ±â  ¶§¹®¿¡  ¼û±æ°æ¿ì  »ç¿ëÇϸ頠À¯¿ëÇÒ  °Í  °°´Ù.

        
  
        @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°¡  Áö¿øµÇÁö  ¾Ê´Â  ¹æ½Ä
                }
        }
        


    

        
        6.  onReceivedHttpAuthRequest()
        
    
          *  ÀÎÁõ  ¿äûÀ»  Ã³¸®ÇÑ´Ù°í  ¾Ë¸³´Ï´Ù.  ±âº»  µ¿ÀÛÀº  ¿äûÀ»  Ãë¼ÒÇϴ  °ÍÀÔ´Ï´Ù.  (http  ÀÎÁõ¿äûÀÌ  ÀÖÀ»  °æ¿ì)

        
  
        @Override
        public  void  onReceivedHttpAuthRequest(WebView  view,HttpAuthHandler  handler,  String  host,  String  realm)  {
                super.onReceivedHttpAuthRequest(view,  handler,  host,  realm);
        }
        


        
        6.  onScaleChanged()
        
    
          ½ºÄÉÀÏÀÌ  º¯°æµÇ¾úÀ»  ¶§  Ã³¸®ÇÒ  ³»¿ëÀ»  ±¸ÇöÇÑ´Ù.  (È®´ë³ª  Å©±âµîÀÌ  º¯È­  ÀÖÀ»  °æ¿ì)

        
  
        @Override
        public  void  onScaleChanged(WebView  view,  float  oldScale,  float  newScale)  {
                super.onScaleChanged(view,  oldScale,  newScale);
        }
        


        
        7.  onUnhandledKeyEvent()
        
    
        À߸øµÈ  Å°  ÀÔ·ÂÀÌ  ÀÖÀ»  °æ¿ì  È£ÃâµÇ´Â  ¸Þ½îµå
        
        ½Ã½ºÅÛ  Å°¸¦  Á¦¿ÜÇÏ°í,  WebView´Â  shouldOverrideKeyEvent°¡  true¸¦  ¹ÝȯÇϴ  °æ¿ì³ª
        
        ÀϹÝÀûÀΠ flow¿¡¼­  Ç×»ó  Å°  À̺¥Æ®¸¦  Ã³¸®ÇÕ´Ï´Ù.  Å°  À̺¥Æ®°¡  ¹ß»ýµÈ  °÷À¸·Î  ºÎÅÍ  

        ºñµ¿±âÀûÀ¸·Î  È£ÃâµË´Ï´Ù.

        
  
        @Override
        public  void  onUnhandledKeyEvent(WebView  view,  KeyEvent  event)  {  
                super.onUnhandledKeyEvent(view,  event);
        }
        




        
        8.  shouldOverrideKeyEvent()
        
    
        »ç¿ëÀÚÀÇ  Å°  ÀÔ·ÂÀÌ  ÀÖÀ»  °æ¿ì  È£ÃâµÇ´Â  ¸Þ½îµå
        
        ½Ã½ºÅÛ  Å°¸¦  Á¦¿ÜÇÏ°í,  WebView´Â  shouldOverrideKeyEvent°¡  true¸¦  ¹ÝȯÇϴ  °æ¿ì³ª
        
        ÀϹÝÀûÀΠ flow¿¡¼­  Ç×»ó  Å°  À̺¥Æ®¸¦  Ã³¸®ÇÕ´Ï´Ù.  Å°  À̺¥Æ®°¡  ¹ß»ýµÈ  °÷À¸·Î  ºÎÅÍ  

        ºñµ¿±âÀûÀ¸·Î  È£ÃâµË´Ï´Ù.

        
  
        @Override
        public  void  shouldOverrideKeyEvent(WebView  view,  KeyEvent  event)  {  
                return  super.shouldOverrideKeyEvent(view,  event);
        }
        


        (¿¹Á¦)  shouldOverrideKeyEvent()
        ------------------------------------------------------------------------
        
  
        @Override
        public  boolean  shouldOverrideKeyEvent(WebView  view,  KeyEvent  event)  {  
                int  keyCode  =  event.getKeyCode();
                Log.d("HelloWebViewClient","####  shouldOverrideKeyEvent()    "  +  keyCode);    

                if  ((keyCode  ==  KeyEvent.KEYCODE_DPAD_LEFT)  &&  webview.canGoBack())  {
                        webview.goBack();        //Ãë¼Ò¹öÆ°½Ã  Àü  ÆäÀÌÁö·Î  °£´Ù.
                        return  true;
                }else  if  ((keyCode  ==  KeyEvent.KEYCODE_DPAD_RIGHT)  &&  webview.canGoForward())  {
                        webview.goForward();        //¿À¸¥ÂÊ  ¹öÆ°½Ã  ¾Õ  ÆäÀÌÁö·Î  °£´Ù.
                        return  true;
                }
                
                return  false;
        }
        



        
        9.  shouldOverrideUrlLoading()
        
        
        »õ·Î¿î  URLÀÌ  ÇöÀç  WebView¿¡  ·ÎµåµÇ·Á°í  ÇÒ  ¶§  È£½ºÆ®  ÀÀ¿ë  ÇÁ·Î±×·¥¿¡°Ô  ÄÁÆ®·ÑÀ»  ´ë½ÅÇÒ  ±âȸ¸¦  ÁÝ´Ï´Ù

        
  
        public  boolean  shouldOverrideUrlLoading(WebView  view,  String  url)  {
                //return  super.shouldOverrideUrlLoading(view,  url);
                view.loadUrl(url);
                return  true;
        }
        
ÃßõÃßõ : 297 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
217
MediaPlayer Ŭ·¡½º »ç¿ë¹ý
216
¾Èµå·ÎÀ̵忡¼­ audio player ½ÇÇàÇϱâ
215
[Android] MediaPlayer À½¾ÇÀç»ý±â ¸¸µé±â
214
Eclipse¿Í Android NDK ¿¬µ¿Çϱâ
213
Android Sliding Drawer Functionality ¾Èµå·ÎÀÌµå ½½¶óÀ̵ù µå·Î¿ì ¿¹Á¦ sample
212
Android Speech To Text
211
Android WebPageLoader with progress-bar
210
Android Text To Speech(TTS)
209
Android Playing Audio from a web url
208
Button height different from background height in Android image design
207
Android Getting Started with Material Design
206
Using toast inside timertask perfect
205
³×Æ®¿öÅ© »óÅ [Android]
204
Webview source [Android]
203
°øÀ¯ Intent [Android]
202
intent uri ¸ðÀ½ [Android]
201
http requestWebViewClient [Android]
200
ij½Ã »èÁ¦
199
ij½Ã Áö¿ì±â [Android]
198
¹Ù·ÎÇ®¾î(¼öÇÐ ¹®Á¦ ÁúÀÇÀÀ´ä SNS) ¿¡ »ç¿ëµÈ ¿ÀǼҽº ¶óÀ̺귯¸® [Android]
197
Webviw [Android]
196
¿ÀǼҽº ¶óÀ̺귯¸® ¸ðÀ½ [Android]
195
Android webview °³¹ß½Ã ¾Ë¾ÆµÖ¾ß ÇÒ °Íµé [Android]
194
webview µ¿¿µ»ó Àç»ý [Android]
193
[Android] Webview 404 ¿¡·¯ ó¸®
192
[Android] webview ssl ¹®Á¦
191
[Android] Webview url ¼û±â±â
190
[Android] AlarmManager ÀÏÁ¤½Ã°£ À̺¥Æ® ½ÇÇà
189
¾Èµå·ÎÀÌµå ¿ÀǼҽº ³¡ÆÇ
188
android studio DefaultHttpClient, HttpClient import ¿¡·¯
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.