상세 컨텐츠

본문 제목

[Android] Webview(웹뷰) 웹페이지 표시

Android/JAVA

by StephanosJ 2022. 12. 28. 14:28

본문

반응형

1. AndroidMenifest Internet Permission

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

2. webview xml  작성 

WebView : 웹페이지 컨텐츠 표시

ProgressBar : 웹페이지 로딩 애니메이션

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="0dp" android:layout_weight="1">
    <WebView
        android:id="@+id/wView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <ProgressBar
        android:id="@+id/pBar"
        style="?android:attr/progressBarStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />
</FrameLayout>

3. Activity java 코드 작성

- xml에 작성한  View id 가져오기

WebView = findViewById(R.id.wView);
mProgressBar =  findViewById(R.id.pBar);
mProgressBar.setVisibility(View.GONE);

- webview setting (Zoom control, Java script표시 등)

mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.getSettings().setDisplayZoomControls(false);
mWebView.getSettings().setSupportZoom(true);
mWebView.getSettings().setJavaScriptEnabled(true);

- webview client 생성 (웹페이지 로딩, SSL인증서, 페이지에러 등 상태를 확인 할 수 있다.

    mWebView.setWebViewClient(new WebViewClient(){
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            mProgressBar.setVisibility(View.VISIBLE);

        }
        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            mProgressBar.setVisibility(View.GONE);
        }
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return false;
        }

        @Override
        public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
            super.onReceivedError(view, request, error);

            // runs when there's a failure in loading page
            mProgressBar.setVisibility(View.GONE);
            //Toast.makeText(this, "Failure on loading web page", Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
            handler.proceed(); // SSL 인증서 무시
        }
    });
}

- webview 원하는 웹주소 페이지를 로딩한다.

mWebView.loadUrl("https://m.naver.com");

- load한 웹페이지를 확인할 수 있다.

반응형