티스토리 뷰
Android 에서 Web Page 를 보여주는 WebView 추가 방법 입니다.
WebView 보여주는 방법 및 WebView를 터치 이벤트 추가 방법.
WebView를 사용하기 위해서는 manifest에서 인터넷 권한을 추가 해야합니다.
<uses-permission android:name="android.permission.INTERNET"/>
view activity xml 에 webView 를 추가 하고 id 를 mWebView 와 같이 원하는 이름으로 지정합니다.
<WebView
android:id="@+id/mWebView"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</WebView>
webView에 id를 매칭시켜 주고,
setWebViewClient -> shouldOverrideUrlLoading 를 Override 하여 새로운창으로 View 가 열리는것을 막아줍니다.
setOnTouchListener -> onTouch 를 Override 하여 터치한 WebView 의 URL 을 Toast 로 보여줍니다.
그리고 loadUrl을 사용하여 원하는 페이지 주소로 이동을 시킵니다.
여기서는 youtube.com 을 Load 하여 보여주도록 해보겠습니다.
public WebView mWebView;
...
mWebView = (WebView) findViewById(R.id.mWebView);
mWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
mWebView.setWebViewClient(new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});
mWebView.setOnTouchListener(new View.OnTouchListener() { //터치이벤트 구현부
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
String webURL = mWebView.getUrl();
Toast.makeText(getApplicationContext(),
"WebView("+webURL+") is clicked !!", Toast.LENGTH_LONG).show();
return false;
}
});
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(true);
webSettings.setAllowContentAccess(true);
webSettings.setEnableSmoothTransition(true);
webSettings.setLoadsImagesAutomatically(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setSupportZoom(false);
webSettings.setUseWideViewPort(true);
webSettings.setAppCacheEnabled(true);
webSettings.setSupportMultipleWindows(true);
mWebView.loadUrl("https://www.youtube.com/");
...
그리고 위 WebView를 getSetting 으로 여러 설정 등을 해주면 WebView 의 세팅등을 원하는 데로 설정해줄수 있습니다.
WebPage의 이미지가 보이지 않거나 Zoom 이 안되거나, 자바스크립트가 동작하지 않거나 하는 것은 이부분을 원하는데로 설정 해주어 해결 해줍니다.
위와 같이 설정 하여 실행 하면 아래와 같이 WebView 를 보여주는 간단한 예제 완성.
'Computer > Android' 카테고리의 다른 글
[Android] Touch, Gesture, Key Event 처리 (0) | 2020.05.05 |
---|---|
[Android] EditText 스크린 키보드 설정 (0) | 2020.03.13 |
[Android] OnClickListener로 Parameter 전달 (0) | 2020.02.27 |
[Android] 안드로이드 애니메이션(Animation) 효과 주기 (0) | 2020.02.26 |
[Android] Touch, onInterceptTouchEvent, dispatchTouchEvent (0) | 2020.02.24 |
댓글