본문 바로가기
Native 개발/안드로이드 개념 정리

안드로이드 : 웹뷰에서 주소창 없애기

by 번데기 개발자 2022. 8. 30.
반응형

개요

 

모바일 하이브리드 앱을 만들던 중에 웹뷰를 한번 만들어봤는데요, 잘 나오기는 하는데 주소창이 보이기 때문에 하이브리드 앱의 느낌이 아니라 브라우저의 느낌이 강하게 들었습니다.

 

그래서 안드로이드 웹뷰에서 주소창을 없애는 방법을 적용하였고, 이에 대해 간단하게 정리해보겠습니다.

 

 

 

해결법

 

package com.example.deso_android;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = (WebView) findViewById(R.id.webView);

        // 주소창 없애기
        webView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });

        webView.loadUrl("https://www.daum.net/");
        webView.getSettings().setJavaScriptEnabled(true);


    }
}

 

안드로이드 webView로 페이지를 열면 기본적으로 주소창이 열리지 않지만 한번만 링크를 타면 주소창이 보이는데요, 그 이유는 링크를 타게 되면 webView가 아니라 내장 브라우져가 열리기 때문입니다.

 

위 코드에서처럼  wevView.setWebViewClient 의 내부의 view.loadUrl 이라는 함수를 위에서 처럼 추가해주면 링크가 내장 브라우저가 아닌 웹뷰 안에서 이동하기 때문에 주소창이 보이지 않습니다.

 

참고로 setWebViewClient 내부의 ShouldOverrideUrlLoadion() 메소드란 현재 페이지의 url을 읽어 올 수 있는 메서드 입니다. 이 메서드를 이용하여 새창을 읽을 수 도 있고 특정 페이지에서만 특수한 기능을 넣을수도 있는 android webview에서 아주 자주사용되는 메서드 입니다. 

 

 

 

해결 화면 캡쳐

 

 

 

마무리

 

오늘은 간단하게 내장 웹뷰로 링크를 여는 방법에 대해 알아보았습니다.

 

궁금한것 있으시면 댓글 남겨주세요. 감사합니다.

 

 

참고

 

[지식공유] 안드로이드 'ShouldOverrideUrlLoading' 너는 누구냐?

 

안드로이드 webview shouldOverrideUrlLoading() 사용법

 

android WebView url창 안보이도록 하기

 

 

반응형