Notice
Recent Posts
Recent Comments
Link
투케이2K
136. (AndroidStudio/android/java) 웹뷰 (webview) loadUrl 사용해 로드 완료된 웹 페이지 html body 데이터 전체 확인 실시 본문
Android
136. (AndroidStudio/android/java) 웹뷰 (webview) loadUrl 사용해 로드 완료된 웹 페이지 html body 데이터 전체 확인 실시
투케이2K 2021. 5. 10. 09:30/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : AndroidStudio
개발 언어 : java
/* =========================== */
/* =========================== */
[소스 코드]
//========= [초기 웹뷰 설정 시 자바 스크립트 경로 지정 실시] =========
public void Javascript_To_Android(){
//TODO 자바 스크립트 통신 경로 지정
main_webview.addJavascriptInterface(new A_Webview.AndroidBridge(), "Android"); //자바스크립트에 대응할 함수를 정의한 클래스 붙여줌
}
//========= [웹 로딩할 동안 호출 상태 확인 실시] =========
main_webview.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int progress) {
Log.d("---","---");
Log.w("//===========//","================================================");
Log.d("","\n"+"[A_Webview > onProgressChanged() 메소드 : 웹뷰 호출 상황 확인 실시]");
Log.d("","\n"+"["+"웹 호출 상황 - "+String.valueOf(progress)+"]");
Log.w("//===========//","================================================");
Log.d("---","---");
/**
* [새로 들러온 값이 기존의 값보다 커야만 기존값을 교체한다]
*/
//TODO 웹페이지 로드가 완료된 경우
if(progress >= 100){
//TODO 자바스크립트 기본 메소드로 html 소스를 통째로 지정해서 인자로 넘김
view.loadUrl("javascript:window.Android.getHtml(document.getElementsByTagName('body')[0].innerHTML);");
}
}
});
//========= [자바 스크립트 통신 데이터를 확인하기 위한 브릿지] =========
//TODO [핸들러를 통한 JavaScript 이벤트 반응]
Handler handler = new Handler();
//TODO [내부 브릿지 클래스 선언 및 메소드 생성]
class AndroidBridge {
@JavascriptInterface
public void getHtml(final String arg) {
handler.post(new Runnable() {
public void run() {
//TODO BODY에 포함된 HTML 내용 전체 통째로 받아온다
Log.d("---","---");
Log.w("//===========//","================================================");
Log.d("","\n"+"[A_Webview > getHtml() 메소드 : 웹뷰 내용 확인 실시]");
Log.d("","\n"+"["+"내용 - "+String.valueOf(arg)+"]");
Log.w("//===========//","================================================");
Log.d("---","---");
}
});
}
}
/* =========================== */
/* =========================== */
[결과 출력]
/* =========================== */
반응형
'Android' 카테고리의 다른 글
Comments