웹뷰 설정은 매번 기억이 안나기 때문에

기록해두는게 마음편하다.

 

 

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


webView.getSettings().setJavaScriptEnabled(true); // 자바스크립트 사용여부

webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);  // 자바스크립트가 창을 자동으로 열 수 있게할지 여부

webView.getSettings().setLoadsImagesAutomatically(true); // 이미지 자동 로드

webView.getSettings().setUseWideViewPort(true); // wide viewport 설정
//  설정값이 false인 경우, layout 너비는 디바이스 픽셀에 맞추어 설정된다.
//  값이 true이고 페이지에 뷰포트 메타 태그가 있으면 태그에 지정된 너비 값이 사용된다.
//  페이지에 태그가 없거나 너비가 없는 경우 넓은 뷰포트가 사용된다.


webView.getSettings().setLoadWithOverviewMode(true); //컨텐츠가 웹뷰보다 클때 스크린크기에 맞추기

webView.getSettings().setSupportZoom(false); // 줌설정

webView.getSettings().setBuiltInZoomControls(true); // 줌아이콘

webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); // 캐시설정
//  LOAD_CACHE_ELSE_NETWORK  : 캐시 기간만료 시 네트워크 접속
//  LOAD_CACHE_ONLY : 캐시만 불러옴 (네트워크 사용 X)
//  LOAD_DEFAULT : 기본 모드, 캐시 사용, 기간 만료 시 네트워크 사용
//  LOAD_NO_CACHE : 캐시모드 사용안함
//  LOAD_NORMAL : 기본모드 캐시 사용 @Deprecated

 

 

 

 

 

 

 

 

webView.getSettings().setAppCacheEnabled(false); //앱내부의 캐시 사용 여부

webView.getSettings().setDomStorageEnabled(true);  // 로컬 스토리지 사용여부

webView.getSettings().setAllowFileAccess(true); // 파일 액세스 허용 여부

webView.getSettings().setUserAgentString("app"); // 사용자 문자열 설정

webView.getSettings().setDefaultTextEncodingName("UTF-8"); // 인코딩 설정

webView.getSettings().setAllowUniversalAccessFromFileURLs(true);

webView.getSettings().setBlockNetworkImage(false); // 네트워크를 통해 이미지리소스 받을지 여부

webView.getSettings().setSupportMultipleWindows(true); //  멀티윈도우를 지원할지 여부
//  {@link WebChromeClient#onCreateWindow} must be implemented by the host application. -

webView.getSettings().setDatabaseEnabled(false); //database storage API 사용 여부

webView.getSettings().setAllowContentAccess(true); // 웹뷰를 통해 Content URL 에 접근할지 여부

// a class -> 내부에 @JavascriptInterface 메서드 구현
// webView.addJavascriptInterface(new a(this), "app");


webView.setWebChromeClient(new WebChromeClient());
webView.clearCache(true);
webView.loadUrl("https://kyome.tistory.com/"); //웹뷰 URL로드 

 

 

 

도움이 되는 자료였다면
로그인이 필요없는 공감 버튼 꾹 눌러주세요! 

 

 

 

 

 

설정방법

1. log4j.xml파일을 생성(수정)

Spring 으로 세팅하면 기본적으로 log4j를 포함하고 있기 때문에 별도 생성할 필요는 없지만 혹시 없다면 log4j.xml 파일을 생성해야 한다.

Path : src/main/resources/log4j.xml

 

1.log4j.xml 구성

Appender, logger, root 로 구성되어있는 걸로 보인다.

 

Appender는 로그를 찍을 대상이나 어떤 방식으로 찍을 지를 결정하는 설정으로 보인다.

기본 설정값은 console에 찍는 방식으로 되어있고 PatternLayout 클래스를 사용해서 Layout을 잡는다.

 

logger는 Application Loggers라고 주석이 달린 것처럼 package와 같이 영역을 지정하고 해당 영역에서 사용할 logger를 정의하는 태그로 보인다.

하위 파라미터로 level을 받아서 출력할 로그수준을 정한다.

appender-ref 태그를 사용하여 ref 값에 참조할 appender를 입력하여 출력방식을 정할 수 있다.

 

root는 default라고 생각하면 되는 것 같다. 설정하지 않은 logger에 대해서만 root logger를 출력하게 한다. 구성요소는 logger와 유사하다.

**같은 로그가 두번 찍힌다면 Additivity 속성에 대해 확인

 

 

2.설정 파일 기본값

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

	<!-- Appenders -->
	<appender name="console" class="org.apache.log4j.ConsoleAppender">
		<param name="Target" value="System.out" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%-5p: %c - %m%n" />
		</layout>
	</appender>
	
	<!-- Application Loggers -->
	<logger name="kr.co.ohjooyeo">
		<level value="info" />
	</logger>
	
	<!-- 3rdparty Loggers -->
	<logger name="org.springframework.core">
		<level value="info" />
	</logger>
	
	<logger name="org.springframework.beans">
		<level value="info" />
	</logger>
	
	<logger name="org.springframework.context">
		<level value="info" />
	</logger>

	<logger name="org.springframework.web">
		<level value="info" />
	</logger>

	<!-- Root Logger -->
	<root>
		<priority value="warn" />
		<appender-ref ref="console" />
	</root>
			
</log4j:configuration>

 

사용방법

사용할 클래스에 private static final 로거 변수 선언 이렇게 선언을 하면 xml에서 해당 어플리케이션(패키지)의 로거를 생성

1. 선언

Logger의 name을 패키지로 잡았을 경우, 패키지내의 클래스명.class를 파리미터로 선언

private static final Logger logger = LoggerFactory.getLogger(선언한 클래스명.class);

 

Logger의 name을 변수명으로 잡았을 경우, logger의 이름(문자열)을 파리미터로 선언

private static final Logger logger = LoggerFactory.getLogger("test");
<!-- Application Loggers --> <logger name="test"> <level value="info" /> </logger>

+ Recent posts

"여기"를 클릭하면 광고 제거.