[개발] 안드로이드 webview 기본 소스

반응형


이 포스팅은 자주쓰는 안드로이드 소스를 개인적으로 정리하는 것입니다.





안드로이드 webview 기본 소스. Activity를 이용한 소스이며 fragment를 이용하는 경우는 소스가 약간다르다.



MainActivity.java


public class MainActivity extends Activity {

 

private WebView webView;

private ProgressBar mPBar;

 

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.webview);

 

webView = (WebView) findViewById(R.id.webView1);

mPBar = (ProgressBar) findViewById(R.id.progress01);

WebSettings set = webView.getSettings();

webView.getSettings().setJavaScriptEnabled(true);

webView.loadUrl("http://newhouse.tistory.com/"); // 보여주고자 하는 주소

set.setCacheMode(WebSettings.LOAD_NO_CACHE);

set.setSupportZoom(false);

webView.setWebViewClient(new WebClient());

 

 

webView.setWebChromeClient(new WebChromeClient()        

{

public void onProgressChanged(WebView view, int progress) {

if (progress<100)

{

mPBar.setVisibility(ProgressBar.VISIBLE);                   

}                   

else if (progress==100)                   

{                       

mPBar.setVisibility(ProgressBar.GONE);                   

}                   

mPBar.setProgress(progress);                 

}           

 

});}

 

@Override

   public boolean onKeyDown(int keyCode, KeyEvent event){

       if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){

           if(webView.canGoBack()){

            webView.goBack();

           }else{

            webView.clearCache(false);

               finish();

           }

           return true;

       }

       return super.onKeyDown(keyCode, event);

}

 

private class WebClient extends WebViewClient { 

       @Override 

       public boolean shouldOverrideUrlLoading(WebView view, String url) {

           

        if (url.startsWith("sms:")) {

                Intent i = new Intent(Intent.ACTION_SENDTO, Uri.parse(url));

                startActivity(i);

                return true;

               }

       

        if (url.startsWith("kakaolink:")) {

                Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

                startActivity(i);

                return true;

               }

             

               

        if(url.startsWith("tel")){

                   Intent i = new Intent(Intent.ACTION_DIAL);

                   i.setData(android.net.Uri.parse(url));

                   startActivity(i);

                   

           } else {

                   view.loadUrl(url);

                   

           } 

           

                       

           

           return true;

           

           

           

           

   }}  

}



webview.xml


<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@+id/tab2"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    android:gravity="center">

         

    <ProgressBar

        android:id="@+id/progress01"        

        android:layout_width="fill_parent"        

        android:layout_height="10dp"        

        style="?android:attr/progressBarStyleHorizontal"

            />


    <WebView

        android:id="@+id/webView1"

        android:layout_width="match_parent"

        android:layout_height="match_parent" />

       


</LinearLayout>



간단히 copy해서 이클립스에서 돌리면 간단한 웹뷰로 구성된 어플를 만들 수 있다.




반응형

이 글을 공유하기

댓글(4)

  • 궁금한게 있는데요
    2014.10.16 18:05

    이걸 이미지 선택시 실행을 하기 위해선
    ImageButton ImageButton2 = (ImageButton) findViewById(R.id.imageButton2);
    ImageButton2.setOnClickListener(new View.OnClickListener(){

    public void onClick(View v){
    Intent intent = new Intent(getApplicationContext(),WebActivity.class);
    startActivity(intent);
    }
    });
    이렇게 소스를 주는게 맞는건가요 ?

    • 2014.10.18 12:07 신고

      Intent intent = new Intent(getApplicationContext(),WebActivity.class);


      getApplicationContext() -> 현재 액티비트이름.class 로 한번 해보세요.. 저는 그렇게 하면 되더라고요

  • WebActivity 가 MainActivity 입니다
    2014.10.16 18:08

    메인은 따로 있고 메인에서 이미지를 선택시 웹뷰를 실행시키기는것을 구현중인데 ,
    자꾸 오류가 뜨네요 .
    메인 레이아웃에서 이미지 선택시 WebActivity의 웹뷰 실행은 불가능한건가요 ?

Designed by JB FACTORY