본문 바로가기

Android

Android : webView

webView

AndroidManifest.xml

인터넷 권한이 필요하다. 아래 권한을 추가해준다.
1
<uses-permission android:name="android.permission.INTERNET"/>
cs

.xml에 추가

웹뷰 컴포넌트를 해당 레이아웃 xml에 포함시킨다.
1
2
3
4
    <WebView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/webView"></WebView>
cs


MainActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
public class MainActivity extends AppCompatActivity {
 
    private WebView webView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        webView = findViewById(R.id.webView);
        webView.getSettings().setJavaScriptEnabled(true); 
        webView.loadUrl("접속할 주소"); 
        webView.getSettings().setSupportZoom(true); 
        webView.getSettings().setBuiltInZoomControls(true);
        webView.setWebChromeClient(new WebChromeClient(){ // 1
            @Override
            public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
                return super.onJsAlert(view, url, message, result);
            }
        });
        webView.setWebViewClient(new WebViewClientClass());
 
    }
        private class WebViewClientClass extends WebViewClient {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        }
}
cs


1 : WebViewClient()로 처음 설정했으나 얼랏창이 정상적으로 출력되지 않아 이를 위해 WebChromeClient를 설정해 JsAlert 메소드를 오버라이드했다.

options

아래는 옵션들이다.
1
2
3
4
5
6
7
8
9
.setJavaScriptEnabled(true); // javascript를 실행할 수 있도록 설정
.setJavaScriptCanOpenWindowsAutomtically(true); // javascript가 window.open()을 사용할 수 있도록 설정
.setPluginState(WebSettings.PluginState.ON_DEMAND); // 플러그인을 사용할 수 있도록 설정
.setSupportMultipleWindows(true); // 여러개의 윈도우를 사용할 수 있도록 설정
.setSupportZoom(true); // 확대,축소 기능을 사용할 수 있도록 설정
.setBuiltInZoomControls(true); // 안드로이드에서 제공하는 줌 아이콘을 사용할 수 있도록 설정
.setLoadsImagesAutomatically(true); // 웹뷰가 앱에 등록되어 있는 이미지 리소스를 자동으로 로드하도록 설정
.setUseWideViewPort(true); // wide viewport를 사용하도록 설정
.setCacheMode(WebSettings.LOAD_NO_CACHE); // 웹뷰가 캐시를 사용하지 않도록 설정
cs