개발 알다가도 모르겠네요

WebView를 간단하게 알아보자. 본문

모바일/안드로이드

WebView를 간단하게 알아보자.

이재빵 2021. 2. 3. 23:13
728x90

 

WebView를 사용하여 특정 인터넷 페이지를 출력하도록 해 보겠습니다.

 

 

먼저 xml파일입니다. 

<WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

 

 

그다음 메인 액티비티입니다.

public class MainActivity extends AppCompatActivity {

    private WebView webView;                       
    private String url = "https://www.naver.com";    //출력하고 싶은 url주소를 입력합니다. 



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

        webView = (WebView)findViewById(R.id.webView);
        webView.getSettings().setJavaScriptEnabled(true); //자바스크립트를 허용하기 위해 해당 메소드를 입력합니다.
        webView.loadUrl(url);    //url주소를 가져온다.
        
        //웹을 더 쾌적하게 돌리기 위한 세팅.
        webView.setWebChromeClient(new WebChromeClient());  //웹뷰로 띄운 웹페이지를 컨트롤한다. 크롬에 맞춰 쾌적한 환경조성을 위한 세팅.
        webView.setWebViewClient(new WebViewClientClass());   //페이지 컨트롤을 위한 기본적인 함수. 다양한 요청, 알람을 수신하는 기능.


    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {     //뒤로 돌아가는 기능. 
        if((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
            webView.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    private class WebViewClientClass extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {  //현재 페이지의 url을 읽어옴. 이를 통해 새 창 열수도 있고, 특정페이지에서 특정 기능을 사용할 수도 있음.
            view.loadUrl(url);
            return true;
        }

    }
}

 

마지막으로 manifest파일에 들어가서 아래의 코드를 추가해줍니다.

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