Android

[Android] WebView

an-hayyy 2021. 2. 26. 08:57

WebView는 이런 반응형 웹사이트를 안드로이드 디바이스에서 띄워줄수 있는 기능

 

1. Manifest.xml 추가

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

 

2. activity_main.xml 추가

<WebView

  android:layout_width="match_parent"

  android:layout_height="match_parent"

  android:id="@+id/webView">

</WebView>

 

3. 액티비티에서 Webview를 할당하고 xml 연결

private WebView wwebView;

wwebView = (WebView) findViewById(webView);

 

4. 웹뷰에서 자바스크립트가 사용이 안되도록 디폴트 설정 되어 있기 때문에 자바 스크립트가 가능하도록 코드 추가

wwebView.getSettings().setJavaScriptEnabled(true); //자바스크립트 허용

 

5. URL을 넣은뒤 웹뷰를 실행하는 코드 추가

wwebView.loadUrl("http://hayyy.tistory.com"); //웹뷰 실행

 

6. 웹뷰에서 크롬이 실행이 가능하도록 코드추가

wwebView.setWebChromeClient(new WebChromeClient());

 

7. 웹뷰에서 홈페이지를 띄웠을때 기존창에서 실행이 되도록 코드 추가 및 Class 생성

wwebView.setWebViewClient(new WebViewClientClass());


private class WebViewClientClass extends WebViewClient { //페이지 이동

  @Override

  public boolean shouldOverrideUrlLoading(WebView view, String url) {

    Log.d("check URL",url);

    view.loadUrl(url);

    return true;

  }

}

 

8. 웹뷰에서 뒤로가기가 가능하도록 코드 추가

웹뷰가 아닌 다른 버튼을 클릭할 시 웹뷰의 히스토리를 거꾸로 가게 만들수 있는데, 모든 웹뷰에서 일어난 페이지 이동이 저장되어 있다.

goBack() : 페이지 이동을 거슬러 올라 갈수 있는 함수

@Override

  public boolean onKeyDown(int keyCode, KeyEvent event) { //뒤로가기 버튼 이벤트

    if ((keyCode == KeyEvent.KEYCODE_BACK) && wwebView.canGoBack()) {//웹뷰에서 뒤로가기 버튼을 누르면 뒤로

      wwebView.goBack();

      return true;

    }

    return super.onKeyDown(keyCode, event);

}

'Android' 카테고리의 다른 글

[Android] 내부저장소 & 외부저장소  (0) 2021.03.08
[Android] ACC를 활용한 MVVM패턴  (0) 2021.03.03
[Android] 비동기 처리(AsyncTask)  (0) 2021.03.02
[Android] putExtra로 ArrayList 전달  (0) 2021.02.25
[Android] ArrayList  (0) 2021.02.25