상반기/프론트앤드

[Android Studio] Web View

wonjiwonji 2021. 6. 4. 21:23

네비게이션 바 내부 이벤트 아이콘이 존재한다.

해당 아이콘을 눌렀을 때 식물원의 이벤트 웹 페이지로 이동할 수 있도록 하는 웹 뷰를 구현하였다.

 

xml 창에는 다음과 같이 웹 뷰만 생성해주고, 나머지는 모두 java 창에서 구현한다.

<WebView

    android:id="@+id/webView"

    android:layout_width="240dp"

    android:layout_height="240dp"

    android:layout_gravity="center"

    android:layout_marginLeft="10dp"

    android:gravity="center" />

 

java 창에서 가장 먼저 웹뷰를 선언해주고, 이동할 url을 String에 담는다.

private WebView webView;

private String url = "https://www.sbg.or.kr/event/event.html?bun=4";

 

 

아래 onCreate 메소드 안에 아래 코드를 추가해준다. 웹뷰를 띄울 수 있도록 설정해주는 코드이다.

webView = (WeView) findViewById(R.idwebView);

webView.getSettings().setJavaScriptEnabled(true);

webView.loadUrl(url);

webView.setWebChromeClient(new WebChromeClient());

webView.setWebViewClient(new ViewClientClass());

 

다음 코드는 웹뷰에서 뒤로가기를 누르면 꺼지도록 하는 소스이다.

해당 코드가 없어도 동작은 하지만 안정성을 위해 추가하였다.

 

//웹뷰 뒤로가기 누르면 꺼짐

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

    if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {

    webView.goBack();

    return true;

    }

  return super.onKeyDown(keyCode, event);

}

 

 

java 클래스 최 하단에 해당 소스를 추가하여 url을 읽어올 수 있도록 하였다.

private class WebViewClientClass extends WebViewClient {

    @Override

    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        view.loadUrl(url);

        return true;

}

 

 

마지막으로 AndroidMainfest.xml에 가서 인터넷을 허용해주는 문구를 추가해준다.

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

</uses-permission>

 

 

'상반기 > 프론트앤드' 카테고리의 다른 글

[Android Studio] Polyline  (0) 2021.06.05
[Android Studio] Navigation View  (0) 2021.06.04
[Android Studio] Custom Marker  (0) 2021.06.03