티스토리 뷰

1. 안드로이드 웹뷰 html 문자열 데이터 넣어서 불러오기

안드로이드 웹뷰에 주소(url)이 아니라 html 그 자체를 가지는 문자열 데이터로 내용을 로드하는 방법을 알아보겠습니다.

이번에 프로그래머스에서 실시한 대브 매칭 상반기에서 요구 했던 기능 중으로 서버에서 받아온 json 데이터로 html 문자열을 받아와서 띄워야 했던 것이 있었습니다. 이것을 모르고 저는 내부로 오는 url 을 받아서 loadUrl로 열려고 하였지만 인증오류때문에 열 수가 없었습니다.

overview에 html 이 담겨있다

해결하지못한 기능에 대해서 살펴보던 중에 발견한 것이 바로 overview 를 키로 갖는 데이터가 html 데이터임을 알았습니다. 이것이 왜 정작 과제 테스트 할때는 보이지 않았었는지.. 의문입니다. 아무튼 바로 알아보겠습니다.

//data == html data which you want to load
 String data = "Your data which you want to load";

 WebView webview = (WebView)this.findViewById(R.id.webview);
 webview.getSettings().setJavaScriptEnabled(true);
 webview.loadData(data, "text/html; charset=utf-8", "UTF-8");

스택오버플로우 답변을 참고하여 위 코드를 참고해서 구현하면 되는데 스트링 형식으로 html data 를 웹뷰의 loadData 로 넘겨주면 끝 입니다. 뒤에 추가로 text/html; 문자열 형식 등을 지정해주면 되겠고요. 자바스크립트도 웬만하면 지정해서 문제없이 작동하도록 해줍니다.

loadData(it.overview, "text/html; charset=utf-8", "UTF-8")

실제로 실행해보면 웹뷰에 html 데이터가 로드된 것을 확인할 수 있었습니다.

스택오버플로우 답변 내용은 Panchal Amit 님의 답변을 참고하였습니다.

2021.06.18 - [Android] - [Android] 코드에서 drawable 자원으로 컴포넌트 속성 설정하기

2021.06.18 - [Android] - [Android] Intent 에 데이터(값) 넣어서 엑티비티 전환하기

 

댓글
최근에 올라온 글
최근에 달린 댓글
네이버 이웃추가
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함