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

[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;
        }
        
ÃßõÃßõ : 287 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
1,346
À©µµ¿ì ¼­¹ö 2019 Ãë¾àÁ¡ Á¡°Ë º¸¾È
1,345
À©µµ¿ì ¼­¹ö 2019 Ãë¾àÁ¡ Á¡°Ë º¸¾È (windows server 2019)
1,344
Windows Ãë¾àÁ¡Áø´Ü º¸¾È°¡À̵å¶óÀÎ
1,343
Windows Admin Center¸¦ ÅëÇÑ ¼­¹ö °ü¸®
1,342
À©µµ¿ì ¼­¹ö¿¡¼­ ½ÇÇàµÇ´Â ¼­ºñ½º È®ÀÎ
1,341
Chrome NET::ERR CERT REVOKED ÇØ°á¹æ¹ý
1,340
cmd ¸í·É¾î (¸í·É ÇÁ·ÒÇÁÆ® ¸í·É¾î) ¸ðÀ½
1,339
Windows10 ƯÁ¤ ÇÁ·Î±×·¥(OCS 2007 R2)¿¡¼­ ÷ºÎÆÄÀÏ µå·¡±×¾Øµå·ÓÀÌ ¾È µÇ´Â Çö»ó
1,338
À©µµ¿ì ·Î±×, °ü¸® À̺¥Æ® »èÁ¦
1,337
Ŭ¸° ºÎÆÃ
1,336
Windows ±¸¼º ¿ä¼Ò ÀúÀå¼Ò¿¡¼­ ÆÄÀÏ ¼Õ»ó °Ë»ç
1,335
Windows Defender °Ë»ç ±â·Ï »èÁ¦Çϱâ
1,334
°£´ÜÇÑ À©µµ¿ì 10 Á¤Ç° ÀÎÁõ (Å©·¢ÇÁ·Î±×·¥ ÇÊ¿ä¾øÀ½)
1,333
¿À·ù³­ Æú´õ °­Á¦»èÁ¦ ¹æ¹ý
1,332
Å©·Ò¿¡¼­ Ç÷¡½Ã Ç×»ó Çã¿ëÇϵµ·Ï ¼³Á¤Çϱâ (·¹Áö½ºÆ®¸®) reg ÆÄÀÏ ¸¸µé±â
1,331
GPT µð½ºÅ©¸¦ MBR µð½ºÅ©·Î º¯È¯
1,330
MBR µð½ºÅ©¸¦ GPT µð½ºÅ©·Î º¯È¯
1,329
±¸±Û °Ë»öÀ» 200% È°¿ëÇÏ°Ô ÇØÁÖ´Â °Ë»ö ¸í·É¾î ÃÑÁ¤¸®
1,328
[Jquery] jQuery·Î ¿ìŬ¸¯ ¹æÁö, µå·¡±× ¹æÁö, ¼±Åà ¹æÁö (IE10, ÆÄÀ̾îÆø½º, Å©·Ò È®ÀÎ)
1,327
php »ç¿ëÀÚ Á¢¼ÓIP, ºê¶ó¿ìÀúÁ¤º¸, osÁ¤º¸, http, https Á¢¼ÓÇÁ·ÎÅäÄÝ ¾Ë¾Æ¿À±â
1,326
[PHP] IE ºê¶ó¿ìÀú Á¢¼Ó °ËÃâÇϱâ
1,325
À©µµ¿ì10 ½Ã½ºÅÛ ¿¹¾à ÆÄƼ¼Ç È®ÀÎ ¹× »èÁ¦
1,324
À©µµ¿ì10 º¹±¸ ÆÄƼ¼Ç »èÁ¦ ¹æ¹ý
1,323
À©µµ¿ì10 ºÎÆÃÁö¿¬ °ËÀºÈ­¸é¿¡¼­ ¸îºÐ°£ ¸Ó¹«´Â Çö»ó ÇØ°á¹æ¹ý
1,322
»ï¼º³ëÆ®ºÏ ¹ÙÀÌ¿À½º ÁøÀÔÀÌ ºÒ°¡´ÉÇÑ °æ¿ì ¹ÙÀÌ¿À½º À缳ġ¿Í NVRAM ÃʱâÈ­
1,321
ÀͽºÇ÷η¯(IE)ÀÇ ±¸±Û °Ë»ö°ø±ÞÀÚ Çѱ۷Πº¯°æ ¹æ¹ý
1,320
À©µµ¿ì 10 ±âº» ¾Û »èÁ¦ ¹× º¹±¸
1,319
meta ÅÂ±× http-equiv ¼³Á¤¹æ¹ý°ú Â÷ÀÌÁ¡
1,318
±¸±Û(Google)°Ë»ö¿¡¼­ °í±Þ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÏ¿© ¸¹Àº Á¤º¸¸¦ ¾ò´Â ¹æ¹ý
1,317
ÇÁ·Î±×·¥ ¾øÀÌ Çϵåµð½ºÅ© º¹»ç ¹× ¹é¾÷Çϱâ
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.