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

Android webview °³¹ß½Ã ¾Ë¾ÆµÖ¾ß ÇÒ °Íµé [Android]
7³â Àü
Android¿¡¼­  WebView¶õ  
  -  TextView,  Button°ú  °°Àº  View  Á¾·ùÀÇ  °´Ã¼  ÀÔ´Ï´Ù.  ºê¶ó¿ìÀú¿Í  °°Àº  ¿ªÇÒÀ»  ÇÒ  ¼ö  Àִ  View·Î  
      Á÷Á¢  Å±׵éÀ»  »ðÀÔÇؼ­  º¸¿©ÁֱⰡ  °¡´ÉÇÏ°í,  URLÀ»  ¿¬°áÇÏ¿©¼­µµ  °¡´ÉÇÑ  ViewÀÔ´Ï´Ù.





¾Æ·¡´Â  °³¹ßÇϸ鼭  Èûµé¾ú´ø  ºÎºÐ¿¡  ´ëÇؼ­  °è¼ÓÇؼ­  Ãß°¡ÇØ  ³ª°¥  »ý°¢  ÀÔ´Ï´Ù.  






0.  Æ۹̼Ç
  
      À¥ºä¸¦  »ç¿ëÇϱ⠠À§Çؼ±  °¡Àå  ¸ÕÀú  Çسö¾ß  ÇÒ  °ÍÀÌ  Æ۹̼ÇÀÌ´Ù.  
      ¹°·Ð  HTML¸¸  dataÇü½ÄÀ¸·Î  À¥ºä¿¡  »ðÀÔÇؼ­  º¸¿©Áà¾ß  Çϴ  °æ¿ì´Â  ¾Æ´ÏÁö¸¸..  
      À¥ºä¸¦  »ç¿ëÇϴ  ÀÌÀ¯´Â  ¿Ø¸¸Çϸ頠Åë½ÅÀ»  Çϱ⠠¶§¹®¿¡  ÀÎÅͳݠ ±ÇÇÑÀÌ  ÇÊ¿äÇÏ´Ù.

      <uses-permission  android:name="android.permission.INTERNET"/>



1.  Webview  ÇÒ´ç
    
      ±âÁ¸  Viewµé°ú  ¸¶Âù°¡Áö·Î  xml¿¡¼­  ÀÛ¾÷ÇÑ  °ÍÀ»  findViewByIdÇÔ¼ö·Î  ºÒ·¯¿Ã  ¼ö  ÀÖ½À´Ï´Ù.

      wv  =  (WebView)findViewById(R.id.ttttWebView);



2.  ÀÚ¹Ù½ºÅ©¸³Æ®  °¡´É
      
      À¥ºä°¡  ±âº»ÀûÀ¸·Î  ÀÚ¹Ù½ºÅ©¸³Æ®°¡  ¾ÈµÇ°Ô  µÇ¾î  Àֱ⠠¶§¹®¿¡  Settings¸¦  ÅëÇØ  JavaScript¸¦  EnableÇØÁÝ´Ï´Ù.

      wv.getSettings().setJavaScriptEnabled(true);



3.  ÁÜ(Zoom)

      ¿äÁò  µé¾î  ¹ÝÀÀÇü  À¥ÀÌ  ¸¹¾Æ¼­  ÀÛÀº  È­¸é¿¡  ¸Â´Â  LayoutÀ»  º¸¿©Áִ  À¥µµ  ¸¹Áö¸¸  ±×·¸Áö  ¾ÊÀº  È¨ÆäÀÌÁöÀÇ  °æ¿ì
      È®´ë°¡  ¾öû  µÇ¾î¼­  º¸Àδٰųª  Ãà¼Ò°¡  ¾öûµÇ¾î  º¸À̴  °æ¿ì°¡  ¸¹½À´Ï´Ù.
      ±âº»ÀûÀ¸·Î  Zoom±â´ÉÀÌ  µÇÁö  ¾Ê¾Æ¼­  ¾Æ·¡¿Í  °°Àº  Äڵ尡  ÇÊ¿äÇÕ´Ï´Ù.

      wv.getSettings().setSupportZoom(true);
      wv.getSettings().setBuiltInZoomControls(true);
      wv.getSettings().setDisplayZoomControls(false);    




4.  URL  Á¢¼Ó

      www.naver.com  °°Àº  URL¿¡  Á¢¼ÓÇϱ⠠À§Çؼ­´Â  loadURLÇÔ¼ö¸¦  »ç¿ëÇÕ´Ï´Ù.

      wv.loadUrl(url);



5.  HTML  Ãâ·Â

      htmlű׵éÀ»  StringÀ¸·Î  °¡Áö°í  ÀÖÀ»  °æ¿ì  loadData(data,  mimeType,  encoding);  ÇÔ¼ö¸¦  ÅëÇØ  »ç¿ëÇÕ´Ï´Ù.
    
      String  data  =  "<h5>°¡³ª´Ù¶ó¸¶</h5>";    
      wv.loadData(data,  "text/html",  "UTF-8");



5-1  O.S  ¹öÀüº°  HTMLÃâ·Â¹æ¹ý

      ¾Èµå·ÎÀ̵åÀÇ  °æ¿ì¿¡  ÀÌ»óÇÏ°Ô  4.0  ¹Ì¸¸  ¹öÀü°ú  4.0À̻󠠹öÀüÀÇ  °æ¿ì  loadData()ÇÔ¼öÀÇ  »ç¿ë¹æ¹ýÀÌ  ´Ù¸¨´Ï´Ù.  
      À§ÀÇ  ¹æ¹ýó·³  'wv.loadData(data,  "text/html",  "UTF-8");'  ¹æ¹ýµµ  ÀÖÁö¸¸  
      wv.loadData(data,  "text/html;  charset=UTF-8",  null);  ¹æ¹ýÀ¸·Îµµ  »ç¿ë  Çؾߠ ÇÕ´Ï´Ù.

      if  (android.os.Build.VERSION.SDK_INT  <  android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH)  {
              //  Android  4.0  ¹Ì¸¸  ¹öÀü      
            wv.loadData(data,    "text/html",  "UTF-8");
              Log.d("TTTT","Webview  load  <  4.0");
      }
      else{
            //  Android  4.1  À̻󠠹öÀü
              wv.loadData(data,    "text/html;  charset=UTF-8",  null,  null);
              Log.d("TTTT","Webview  load  >=  4.0");
      }



6.  »ó´ë  ÁÖ¼Ò  º£À̽º  ÁÖ¼Ò  ¼³Á¤Çϱâ
      
        »ó´ë  ÁÖ¼Ò¸¦  Ã³À½¿£  ¾î¶»°Ô  ´ëÀÀÇÒÁö  ¸ô¶ó¼­  StringÀ»  replace()ÇÔ¼ö¸¦  ÀÌ¿ëÇؼ­  ¾ÕºÎºÐ¿¡  ÁÖ¼Ò¸¦  »ðÀÔÇß¾ú´Âµ¥...
        ±×·²  ÇÊ¿ä  ¾øÀÌ  ¾Èµå·ÎÀ̵忡¼­  À̹̠ Á¦°øÇÕ´Ï´Ù.
        ¾Æ·¡´Â  5-1  ¹æ¹ýó·³  O.S  ¹öÀüº°·Î  Àû¿ëµÇ°Ô  ÄÚµù  Çغ»  ¹æ¹ýÀÔ´Ï´Ù.

      if  (android.os.Build.VERSION.SDK_INT  <  android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH)  {
            //  Android  4.0  ÀÌÇÏ  ¹öÀü
            wv.loadDataWithBaseURL("http://sungho0459.blog.me/",  data,    "text/html",  "UTF-8",  null);
            Log.d("TTTT","Webview  load  <  4.0");
      }
      else{
            //  Android  4.1  À̻󠠹öÀü
            wv.loadDataWithBaseURL("http://sungho0459.blog.me/",  data,    "text/html;  charset=UTF-8",  null,  null);
            Log.d("TTTT","Webview  load  >=  4.0");
      }    
        


7.  À¥ºä  WrapContent·Î  ²ËÂ÷°Ô  Çϱâ
    
      Webview  Fill  WrapContents
      À¥ºä¸¦  °¡º¯  »çÀÌÁî(WrapContent)·Î  ¼³Á¤Çؼ­  ºÒ·¯¿Ã  À¥ÆäÀÌÁöÀÇ  Àüü  »çÀÌÁî  ¸¸Å­  ±æ°Ô  ÇÏ°í  ½ÍÀ»  ¶§  »ç¿ëÇϴ  ¹æ¹ýÀÔ´Ï´Ù.
      WebViewClient°´Ã¼¸¦  »ý¼ºÇؼ­  ¼³Á¤ÇØ  ÁÝ´Ï´Ù.  onPageFinished()ÇÔ¼ö¸¦  ¿À¹ö¶óÀ̵堠ÇØÁÝ´Ï´Ù.

      wv.setWebViewClient(new  WebViewClient()  {

              @Override
              public  void  onPageFinished(final  WebView  view,  final  String  url)  {
                      super.onPageFinished(view,  url);
                                
                      /*
                          *  È­¸é²ËÂù  WebView·Î  ¹Ù²Ù±â
                          *  
                          *  invalidate¸¦  ¾ÈÇØÁÖ°Ô  µÇ¸é  
                          *  webview¿¡  ½ºÅ©·Ñ¹Ù¸¸  »ý±â°Ô  µÇ¼­  È­¸éÀÌ  º¸±â  ¾ÈÁÁ°Ô  µÇ¾î  ¹ö¸°´Ù.  
                          *  ±×·¯¹Ç·Î  ²À  invalidate¸¦  ÇØÁà¾ß  ÇÑ´Ù.
                          */
                        wv.invalidate();
                }
        });



8.  ¸µÅ©  Å¬¸¯½Ã  ¿¬°á  °ü¸®

      ¸µÅ©  Å¬¸¯½Ã¿¡  Å¬¸¯ÇÑ  urlÀ»  ÆÇ´ÜÇÏ¿©  Ãß°¡ÀûÀΠ ¾×¼ÇÀ»  ÃëÇÒ  ¼ö  ÀÖ´Ù.  
      
      wv.setWebViewClient(new  WebViewClient()  {

            @Override
            public  boolean  shouldOverrideUrlLoading(WebView  view,  String  url)  {
                          
                  Log.d("TTTT","WebView  load  url:"+url);
                        
                    if(url.startsWith("http:"))  
                  {
                          Intent  i  =  new  Intent(mContext,  ActivityCatchWebView.class);
                          i.putExtra("url",  url);
                          i.putExtra("name",  item.getP_Name());
                          startActivity(i);
                            
                          return  true;
                  }
                          
                  return  super.shouldOverrideUrlLoading(view,  url);
            }
      });



9.  ÄÁÅÙÃ÷  »çÀÌÁî  ¸ÂÃß±â

      À¥  ÁּҷΠ ¿¬°áµÈ  È¨ÆäÀÌÁö°¡  PC¹öÀü  ¹Û¿¡  Á¸ÀçÇÏÁö  ¾Ê¾Æ¼­  ¸ð¹ÙÀÏ¿¡¼­  º¸°Ô  µÉ¶§
      ÄÁÅÙÃ÷  »çÀÌÁî°¡  ³ÑÃļ­  È®´ëµÇ  º¸À̴  °æ¿ì°¡  Á¸ÀçÇÕ´Ï´Ù.  
      ÀÌ·²  ¶§  ¾²´Â  Äڵ尡  ¾Æ·¡ÀÇ  ÄÚµåÁö¸¸,  ÃֽŹöÀü  SDK¿¡¼­´Â  Áö¿øÇÏÁö  ¾Ê´Â  ÇÔ¼ö°¡  µÇ¾î  ¹ö·È½À´Ï´Ù.
      ÀÏ´Ü  ¶«»§¿ëÀ¸·Î  ¾²½Ã¶ó°í  ¿Ã·Áµå¸³´Ï´Ù  ¤»¤»;

      wv.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);



9-1.  ÄÁÅÙÃ÷  »çÀÌÁî  ¸ÂÃ߱⠠(API  4.4  Kitkat  ÀÌ»ó)
  
      Å¶ÄÏ  À̻󿡼­  ºÎÅʹ  LayoutAlhorithm.SINGLE_COLUMNÀÌ  Áö¿øÇÏÁö  ¾Ê´Â´Ù°í  ÇÑ´Ù.  
      ±×·¡¼­  °¡·Î  »çÀÌÁî·Î  ¸ÂÃ߱⠠À§Çؼ±  ¾Æ·¡ÀÇ  Äڵ带  »ç¿ëÇϸ頠µÈ´Ù°í  Çϴµ¥  Á¤ÀÛ  Á¦´ë·Î  µ¿ÀÛÇÏÁö  ¾Ê´Â  °æ¿ì°¡  ¸¹´Ù.

      wv.getSettings().setLoadWithOverviewMode(true);




10.  À¥ºäÀÇ  µÚ·Î°¡±â

      ¾Û  ³»ºÎ¿¡  Àִ  À¥ºä°¡  ¾Æ´Ñ  ´Ù¸¥  ¹öÆ°À»  Å¬¸¯½Ã  À¥ºäÀÇ  È÷½ºÅ丮¸¦  °Å²Ù·Î  °¡°Ô  ¸¸µé  ¼ö  ÀÖ´Ù.
      wv.loadUrl()  È¤Àº  Å¬¸¯À¸·Î  ÀÎÇÑ  À̵¿  µî  ¸ðµç  À¥ºä¿¡¼­  ÀϾ  ÆäÀÌÁö  À̵¿ÀÌ  ÀúÀåµÇ¾î  Àִµ¥  À̸¦  Back½Ãų  ¼ö  Àִ  ÇÔ¼ö°¡  ÀÖ´Ù.

      wv.goBack();



11-1.  À¥ºäÀÇ  È÷½ºÅ丮¸¦  ¾Ë  ¼ö  ÀÖ´Ù.

      À¥ºä  ³»ºÎÀÇ  ÆäÀÌÁö  ÁÖ¼Ò°¡  ¹Ù²ï  °ÍÀ»  ¸ðµÎ  ÀÚµ¿À¸·Î  ÀúÀåµÇ°í  ÀÖ´Ù.
      
      WebBackForwardList  mWebBackForwardList  =  mWebView.copyBackForwardList();



11-2.  À¥ºäÀÇ  È÷½ºÅ丮ÀÇ  À妽º

      À¥  ºä¸¦  ÅëÇؼ­  À̵¿ÇÑ  ÁÖ¼ÒÀÇ  À妽º  °¡  ÇöÀç  ¸î¹ø°  ÀÎÁö  ¾Ë  ¼ö  ÀÖ´Ù.

      WebBackForwardList  mWebBackForwardList  =  mWebView.copyBackForwardList();
      mWebBackForwardList.getCurrentIndex();



11-3.  È÷½ºÅ丮  À妽º¸¦  ÀÌ¿ëÇÑ  URL  ºÒ·¯¿À±â

      À妽º¸¦  ÅëÇؼ­  È÷½ºÅ丮  ¸®½ºÆ®·Î  ºÎÅÍ  URLÀ»  °¡Á®  ¿Ã  ¼ö  ÀÖ´Ù.

      WebBackForwardList  mWebBackForwardList  =  mWebView.copyBackForwardList();
      String  historyUrl  =  mWebBackForwardList.getItemAtIndex(mWebBackForwardList.getCurrentIndex()-1).getUrl();





---------------------  ¾Æ·¡ºÎÅʹ  ¾ÆÁ÷  Àû¿ëÇغ¸Áö  ¾ÊÀº  ¹®Á¦Á¡µé  -----------------------------
¾Æ·¡¿¡  Àִ  ¸®½ºÆ®  Áß¿¡¼­  Âü°í°¡  µÉ¸¸ÇÑ  ÀÚ·á°¡  Àִ  °÷À»  ¾Æ½Ã´Â  ºÐÀº  ¸µÅ©  ´ñ±Û·Î  ´Þ¾ÆÁֽø頠ÀÌ  °Ô½Ã±Û¿¡  Ãß°¡Çϵµ·Ï  ÇÏ°Ú½À´Ï´Ù  ^^

1.  ±âŸ  ÆùÆ®,  ¿ÜºÎ  ÆùÆ®  Àû¿ë  ¹æ¹ý
2.  ·ÎÄà ¸®¼Ò½º  Á¢±ÙÇϱâ
ÃßõÃßõ : 289 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
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.