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


À¥ºä(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,555
JavaScript ¹Ð¸®Ãʸ¦ ½Ã°£Çü½ÄÀ¸·Î º¯È¯
2,554
À§, ¾Æ·¡ ÀÚµ¿ ½ºÅ©·Ñ
2,553
JavaScript·ÎµùÀ» ÃÖÀûÈ­ÇÏ¿© ÆäÀÌÁö ·»´õ¸µ ¼Óµµ¸¦ ºü¸£°Ô ÇÏ´Â 6°¡Áö ¹æ¹ý
2,552
[Javascript] Á¤±Ô½Ä. ÀüÈ­¹øÈ£, ÈÞ´ëÆù ¹øÈ£ ÃßÃâ. °ËÁõ
2,551
jQuery Mobile ½ÃÀÛÇϽô ºÐµéÀ» À§ÇÑ 10°¡Áö ÆÁ°ú ¿¹Á¦µé...
2,550
PHP) Example #1 HTML ¿£Æ¼Æ¼ µðÄÚµù
2,549
PHP Proxy °¡Á®¿À±â
2,548
[¾Èµå·ÎÀ̵å/Android] ¾Èµå·ÎÀÌµå ±ÇÇÑ(Permission) Á¾·ù
2,547
[PHP] while($data = mysql_fetch_array($result)) ¿À·ù ³¯¶§ È®ÀÎ
2,546
PHP for¹® 2¾¿ Áõ°¡ÇÏ´Â ¹ý
2,545
À¯Åõºê °Ë»ö API ¿¹Á¦
À¥ºä(WebView)¿¡ °üÇÑ °íÂû
2,543
WebView ¾ÈÀÇ ÄÜÅÙÃ÷(À̹ÌÁö, µ¿¿µ»ó) Æù È­¸é¿¡ ¸ÂÃß±â
2,542
À¥»çÀÌÆ® ¼Óµµ °³¼±À» À§ÇÑ ÆÁµé
2,541
[¹ø¿ª] javascript ÀÇ this ¶õ ¹«¾ùÀΰ¡
2,540
[¹ø¿ª] ÀÚ¹Ù½ºÅ©¸³Æ® ´Ù½Ã ¹è¿ì±â (A re-introduction to JavaScript)
2,539
HTML, CSS, JavaScript ÀÇ ÀÇÁ¸¼º ÁÙÀ̱â
2,538
°ñ¶§¸®´Â ÀÚ¹Ù½ºÅ©¸³Æ® - ArrayÀÇ Áø½Ç 2
2,537
[jQuery] ³ª¸¸ÀÇ Áö¿¬µÈ °´Ã¼(Deferred Object) ¸¸µé±â.
2,536
°ñ¶§¸®´Â ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ¼¼°è - ³ª¸¸ÀÇ ÇÁ·Î¹ÌÁî ÆÐÅÏ
2,535
[jQuery ©¸·ÆÁ] Ajax ¸¦ ¼øÂ÷ÀûÀ¸·Î ¿©·¯°³ ºÒ·¯¿À±â
2,534
À¥È£½ºÆü­¹ö ±×´ë·Î µû¶ó ¸¸µé±â
2,533
Mobile Web °³¹ßÀ» À§ÇÑ Áغñ
2,532
¸ð¹ÙÀÏÀ¥¿¡¼­ App ½ÇÇà ¹× ¼³Ä¡¿©ºÎ È®ÀÎ
2,531
PHP·Î À̹ÌÁö ÁÖ¼Ò ¼û±â±â
2,530
À¯Åõºê ÁÖ¼Ò¿¡¼­ ¾ÆÀ̵𸸠»Ì¾Æ¿À±â
2,529
Fatal error: Allowed memory size of ~~
2,528
.htaccess ÆÄÀÏÀ» ÀÌ¿ëÇÏ¿© PHP ¾÷·Îµå ¿ë·® Á¦ÇÑ º¯°æ
2,527
¿ìºÐÅõ php.ini ¼³Á¤
2,526
PHP Á¤±Ô½ÄÀ» È°¿ëÇÑ ÅÂ±× ¹× ƯÁ¤ ¹®ÀÚ¿­ Á¦°Å ¹× ÃßÃâ ¹æ¹ý
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.