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


À¥ºä(WebView)¿¡ °üÇÑ °íÂû
9³â Àü
# Layout
±×³É <WebView> ÅÂ±× ³Ö°í ±× ¾È¿¡ ¼Ó¼º ³Ö¾îÁÖ¸é ³¡...

# WebViewClient¸¦ »ó¼Ó¹ÞÀº Ŭ·¡½º Á¤ÀÇ
WebViewClient Ŭ·¡½º¸¦ »ó¼Ó¹Þ¾Æ ±¸ÇöÇÕ´Ï´Ù. ÀÌ ¾È¿¡ shouldOverrideUrlLoading() ¸Þ¼Òµå¸¦ ±¸ÇöÇÏÁö ¾ÊÀ¸¸é À¥ºä ³» ¸µÅ© ÅÍÄ¡ÇÒ ¶§ ¿¬°á ÇÁ·Î±×·¥(±âº» ºê¶ó¿ìÀú, Å©·Ò µî) ¼³Á¤Ã¢ÀÌ ¶å´Ï´Ù.

import android.webkit.*;

class WebBrowserClient extends WebViewClient {
    
    /*
     * À¥ºä ³» ¸µÅ© ÅÍÄ¡ ½Ã »õ·Î¿î âÀÌ ¶ßÁö ¾Ê°í
     * ÇØ´ç À¥ºä ¾È¿¡¼­ »õ·Î¿î ÆäÀÌÁö°¡ ·ÎµùµÇµµ·Ï ÇÔ  
     */
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}


# WebView °´Ã¼ »ý¼º ¹× ¼¼ÆÃ

import android.webkit.*;

public class MainActivity extends Activity {

    private WebView webView;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // À¥ºä ¼³Á¤
        webView = (WebView)findViewById(R.id.webView);
        
        WebSettings webSettings = webView.getSettings();
        webSettings.setUseWideViewPort(true);
        webSettings.setSupportZoom(true); // ÁÜ ¼­Æ÷ÅÍ Ç¥½Ã
        webSettings.setBuiltInZoomControls(true); // ¸ÖƼÅÍÄ¡ ÁÜ Áö¿ø
        webSettings.setJavaScriptEnabled(true);
        
        webView.setWebViewClient(new WebBrowserClient());

        // À¥ºä¿¡ À¥ »çÀÌÆ® Ç¥½Ã
        String url = "http://www.musictrot.com";
        webView.loadUrl(url);
    }
}



# WebView ÃʱâÈ­ ¹æÁö

È­¸é ȸÀü½Ã À¥ºä°¡ ÃʱâÈ­µÇÁö ¾Êµµ·Ï ÇÕ´Ï´Ù. ¾×ƼºñƼ Ŭ·¡½º ¾È¿¡ onConfigurationChanged() ¸Þ¼Òµå¸¦ ±¸ÇöÇÕ´Ï´Ù.

/*
* È­¸é ȸÀü½Ã È­¸éÀÌ ÃʱâÈ­µÇ¹ö¸®´Â ¹®Á¦ ¹æÁö
* ¸Å´ÏÆ佺Ʈ ¾×ƼºñƼ ¼Ó¼º¿¡
* android:configChanges="orientation|screenSize"
* Ãß°¡ ÇÊ¿ä
*/
public void onConfigurationChanged(Configuration newConfig){
    super.onConfigurationChanged(newConfig);
}

¹Ýµå½Ã ¸Å´ÏÆ佺Ʈ ÆÄÀÏ¿¡ ´ÙÀ½°ú °°ÀÌ ¾×ƼºñƼ ¼Ó¼ºÀ» Ãß°¡ÇØ¾ß ÇÕ´Ï´Ù.

<activity
    android:name="com.heroism.webviewapp.MainActivity"
    android:configChanges="orientation|screenSize"
    android:label="@string/app_name" >
</activity>


# µÚ·Î°¡±â  

¾×ƼºñƼ Ŭ·¡½º ¾È¿¡ onKeyDown() ¸Þ¼Òµå¸¦ ±¸ÇöÇϸé back Å°¸¦ ´­·¶À»¶§ ÀÌÀü ÆäÀÌÁö¸¦ º¸¿©ÁÖµµ·Ï ÇÒ ¼ö ÀÖ½À´Ï´Ù. À̶§ canGoBack() ¸Þ¼Òµå·Î ÀÌÀü ÆäÀÌÁö·Î À̵¿ÇÒ ¼ö ÀÖ´ÂÁö ÆÇ´ÜÇÑ ÈÄ goBack() ¸Þ¼Òµå¸¦ È£ÃâÇÏ¿© ÀÌÀü ÆäÀÌÁö¸¦ º¸¿©ÁÝ´Ï´Ù.

ù ÆäÀÌÁö »ó¿¡¼­ back Å°¸¦ ¿¬¼ÓÀ¸·Î µÎ ¹ø ÅÍÄ¡ÇÏ¸é ¾ÛÀ» Á¾·á½ÃÅ°°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù.

// Çڵ鷯, Ç÷¡±×
private Handler mHandler;
private boolean mFlag = false;

// Çڵ鷯 °´Ã¼ ¼³Á¤ (onCreate() ¸Þ¼Òµå ¾È¿¡ ±¸Çö!!!)
mHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        if(msg.what == 0) {
            mFlag = false;
        }
    }
}

public boolean onKeyDown(int keyCode, KeyEvent event) {
      
    // ¹é Å°¸¦ ÅÍÄ¡ÇÑ °æ¿ì
    if(keyCode == KeyEvent.KEYCODE_BACK){
          
        // ÀÌÀü ÆäÀÌÁö¸¦ º¼ ¼ö ÀÖ´Ù¸é ÀÌÀü ÆäÀÌÁö¸¦ º¸¿©ÁÜ
        if(webView.canGoBack()){
            webView.goBack();
            return false;
        }
          
        // ÀÌÀü ÆäÀÌÁö¸¦ º¼ ¼ö ¾ø´Ù¸é ¹éÅ°¸¦ Çѹø ´õ ÅÍÄ¡Çؼ­ Á¾·á
        else {
            if(!mFlag) {
                Toast.makeText(this, "'µÚ·Î' ¹öÆ°À» Çѹø ´õ ´©¸£½Ã¸é Á¾·áµË´Ï´Ù.", Toast.LENGTH_SHORT).show();
                mFlag = true;
                mHandler.sendEmptyMessageDelayed(0, 2000); // 2ÃÊ ³»·Î ÅÍÄ¡½Ã
                return false;
            } else {
                finish();
            }
        }
    }
      
    return super.onKeyDown(keyCode, event);
}



ÃßõÃßõ : 600 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
335
[CSS] :before,:after È°¿ëÇϱâ - ±¸ºÐ¼±
334
jquery ±âº»¹®¹ý
333
HTTP Content-Type Á¤¸®
332
Use kakaolink on Android WebView
331
[ÀÚ¹Ù½ºÅ©¸³Æ®] ½Ç½Ã°£ ½Ã°è ¸¸µé±â
330
¸ð¹ÙÀÏ À¥ÆäÀÌÁö CSS - emÀ» pxó·³ ÆíÇÏ°Ô »ç¿ëÇÏ´Â ¹æ¹ý
329
[html5] audio ű׷ΠÀ½¾Ç ÆÄÀÏ »ðÀÔ
328
±¸±Û ¾Öµå¼¾½º ÇѱÛ, Çѱ¹ ±¤°í ³ª¿À°Ô ¸¸µé±â
327
<UL><LI>¸¦ ÀÌ¿ëÇÑ °¡·ÎÁ¤·Ä ¸Þ´º ¸¸µé±â
326
Android KitKat (4.4) video autoplay does not work anymore in webview
325
jQuery Mobile ½ÃÀÛÇϽô ºÐµéÀ» À§ÇÑ 10°¡Áö ÆÁ°ú ¿¹Á¦µé...
324
[¾Èµå·ÎÀ̵å/Android] ¾Èµå·ÎÀÌµå ±ÇÇÑ(Permission) Á¾·ù
323
À¯Åõºê °Ë»ö API ¿¹Á¦
À¥ºä(WebView)¿¡ °üÇÑ °íÂû
321
WebView ¾ÈÀÇ ÄÜÅÙÃ÷(À̹ÌÁö, µ¿¿µ»ó) Æù È­¸é¿¡ ¸ÂÃß±â
320
À¥»çÀÌÆ® ¼Óµµ °³¼±À» À§ÇÑ ÆÁµé
319
[¹ø¿ª] javascript ÀÇ this ¶õ ¹«¾ùÀΰ¡
318
[¹ø¿ª] ÀÚ¹Ù½ºÅ©¸³Æ® ´Ù½Ã ¹è¿ì±â (A re-introduction to JavaScript)
317
HTML, CSS, JavaScript ÀÇ ÀÇÁ¸¼º ÁÙÀ̱â
316
Mobile Web °³¹ßÀ» À§ÇÑ Áغñ
315
¸ð¹ÙÀÏÀ¥¿¡¼­ App ½ÇÇà ¹× ¼³Ä¡¿©ºÎ È®ÀÎ
314
À¯Åõºê ÁÖ¼Ò¿¡¼­ ¾ÆÀ̵𸸠»Ì¾Æ¿À±â
313
CSS¸¦ ÀÌ¿ëÇÑ ÃÊ°£´Ü ƯÁ¤±¸¿ª ÇÁ¸°Æ® ¼Ò½º
312
JQuery.js ¿Í Prototype.js °°ÀÌ »ç¿ëÇϱâ
311
¾Èµå·ÎÀ̵å À¥ºä(Android WebView) ¿¹Á¦
310
¾Èµå·ÎÀÌµå ¾Û Ä¿½ºÅÒ ±Û²Ã ³Ö±â
309
¾Èµå·ÎÀ̵å À¥ºä ¸µÅ© »õâó¸®
308
JW Ç÷¹ÀÌ¾î ±âº»Å±×
307
¸ð¹ÙÀÏÀ¥¿¡¼­ ÀÚÁÖ ¾²´Â ¼Ó¼ºµé
306
±×´©º¸µå ÃÖ°í°ü¸®ÀÚ ºñ¹Ð¹øÈ£ º¯°æ¹æ¹ý
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.