반응형
개요
모바일 하이브리드 앱을 만들던 중에 웹뷰를 한번 만들어봤는데요, 잘 나오기는 하는데 주소창이 보이기 때문에 하이브리드 앱의 느낌이 아니라 브라우저의 느낌이 강하게 들었습니다.
그래서 안드로이드 웹뷰에서 주소창을 없애는 방법을 적용하였고, 이에 대해 간단하게 정리해보겠습니다.
해결법
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() 사용법
반응형
'Native 개발 > 안드로이드 개념 정리' 카테고리의 다른 글
안드로이드 - 햇갈리는 Toolbar와 ActionBar 정리 (0) | 2019.09.20 |
---|---|
안드로이드 - framelayout의 곂친 레이아웃에서 이벤트 클릭 중복 막기 (0) | 2019.08.20 |
Lombok 설치시 transformClassesWithDexBuilderForDebug 에러 (0) | 2019.08.07 |
안드로이드 - 거주지 입력 - 동주소까지 입력받기 (노가다) (1) | 2019.06.24 |
안드로이드 - versionCode 와 versionName (0) | 2019.04.10 |