1. WebView란?
WebView는 웹 애플리케이션 또는 웹페이지만 클라이언트 애플리케이션의 일부로 제공하려는 경우에 사용하고, Android View 클래스의 확장으로 웹페이지를 활동 레이아웃의 일부로 표시할 수 있게 해 준다.
WebView의 모든 작업은 기본적으로 웹페이지를 표시하는 것이다. 쉽게 설명하자면, 앱 안에 웹 브라우저를 넣는 개념으로 생각하면 된다. WebView는 우리가 흔히 말하는 하이브리드앱(웹앱)을 구현할 때 많이 사용한다.
2. WebView의 사용법
xml
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
java
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.loadUrl("불러오려는 웹페이지의 URL");
manifest
<manifest>
<uses-permission android:name="android.permission.INTERNET" />
...
</manifest>
위 코드는 앱이 인터넷에 액세스 할 수 있도록 권한을 받는 것이다.
위의 코드대로 앱을 구현하면, 해당하는 URL의 페이지가 앱에 보일 것이다.
"생각보다 너무 간단한데?"라는 생각을 하고 있다면, 딱 여기까지가 쉽다는 표현이 맞을 것 같다.
현재 보이는 페이지는 기능적인 부분은 하나도 실행되지 않는다. 왜냐하면 이 부분은 앱에서 필요한 세팅을 해줘야 하기 때문이다.
보여주려는 웹페이지가 자바스크립트를 사용하는 경우 자바스크립트를 사용하도록 설정해야 한다.
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true); //javaScript enable
이제는 기본적으로 웹에 javaScript로 구현되어 있는 기능들을 사용할 수 있을 것이다.
3. WebSettings란?
WebSettings는 WebView의 설정 상태를 관리한다. 위에 보여주었던 javaScript의 기능이 가능하도록 하거나, 캐시를 관리하는 등 다양한 설정을 할 수 있다.
간단하게 사용해 본 메서드를 몇 가지 소개하자면
- setJavaScriptEnabled(boolean flag) : JavaScript 실행을 활성화
- setSupportMultipleWindows(boolean support) : WebView의 다중 창 지원 여부 설정
- setSupportZoom(boolean support) : WebView의 화면 확대/축소 컨트롤 및 제스처를 사용하여 확대/축소 지원 여부 설정
- setJavaScriptCanOpenWindowsAutomatically(boolean flag) : 창을 자동으로 열도록 JavaScript에 지시(Window.open)
이외에도 기본적으로 제공되는 메서드의 종류가 많기 때문에 필요할 때 참고하기!
WebSettings | Android Developers
developer.android.com