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

À¥ºä(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);
}



ÃßõÃßõ : 598 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
2,645
php set time limit ÇÔ¼ö - ŸÀӾƿô ¼³Á¤
2,644
Setting .htaccess to allow PHP to be accessed with .xml extension
2,643
jQuery API: Manipulation, Events, Effects, Internals, Utilities
2,642
´Ù¿î·Îµå Ƚ¼ö Á¦ÇÑ ½ºÅ©¸³Æ®
2,641
ÀÚ¹Ù½ºÅ©¸³Æ® ŸÀÌ¸Ó - setTimeout, setInterval, clearInterval ÇÔ¼ö
2,640
jQuery AJAX ·Î±×ÀÎ ±¸Çö
2,639
PHP ¼¼¼Ç ·Î±×ÀÎ ±¸Çö
2,638
PHP ÄíÅ° ·Î±×ÀÎ ±¸Çö
2,637
jQuery¿¡¼­ json º¯¼ö »ç¿ë(È°¿ë)¹ý
2,636
AJAX ¹Ýº¹Ã³¸® ¹× ¼³¸í ¿¹Á¦
2,635
[Android] Intent È°¿ë ¿¹½Ã
2,634
[php] ¹è¿­À» ÀÓÀÇÀÇ ¼ø¼­·Î ¼¯´Â shuffle ÇÔ¼ö
2,633
jQuery API - ¼Ó¼º(CSS), ÃßÃâ
2,632
DIV ¿µ¿ªÀÇ À§Ä¡ ÁöÁ¤ÇÏ´Â ¹æ¹ý°ú ½ºÅ©·Ñ - Àý´ëÀ§Ä¡(absolute), »ó´ëÀ§Ä¡(relative), °íÁ¤À§Ä¡(fixed)
2,631
urlencode(), base64 encode() ÇÔ¼ö
2,630
PHP·Î IE¹öÀü üũÇÏ´Â ¹æ¹ý(Trident°ª»ç¿ë)
2,629
HTML5 °ü·Ã À¯¿ëÇÑ ·¹ÆÛ(ÂüÁ¶) »çÀÌÆ®
2,628
[HTML5] Video & Audio
2,627
HTML5 ¿Àµð¿À °î ¸ñ·Ï Àç»ý
2,626
HTML5 ¿Àµð¿À 404 ¿À·ù½Ã ´Ù¸¥ ÆÄÀÏ Àç»ý
2,625
HTML5 ¿Àµð¿À À̺¥Æ®¸®½º³Ê onerror
2,624
JavaScript Audio °´Ã¼
2,623
HTML5 Audio 2ä³Î Àç»ý
2,622
HTML5 Audio 2ä³Î Àç»ý + Àç»ý¿Ï·á ¸®½º³Ê
2,621
HTML5 À½¾Ç º¼·ý Á¶Àý
2,620
HTML5 À½¾Ç º¼·ý Á¶Àý
2,619
HTML5 ¿Àµð¿À ÀÚµ¿Àç»ý
2,618
HTML5 ¿Àµð¿À ¹Ýº¹ Àç»ý
2,617
HTML5 ¿Àµð¿À À̺¥Æ®¸®½º³Ê
2,616
Ŭ¸¯ ÇѹøÀ¸·Î °íÀ¯ÁÖ¼Ò(URL) º¹»çµÇ°Ô ÇÏ´Â ¹æ¹ý
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.