Notice
Recent Posts
Recent Comments
Link
투케이2K
604. (Android/Java) 안드로이드 웹뷰에서 자바스크립트 Alert 팝업창 호출 이벤트 감지 - WebChromeClient onJsAlert 본문
Android
604. (Android/Java) 안드로이드 웹뷰에서 자바스크립트 Alert 팝업창 호출 이벤트 감지 - WebChromeClient onJsAlert
투케이2K 2023. 7. 20. 19:38[개발 환경 설정]
개발 툴 : AndroidStudio
[소스 코드]
// TODO [크롬 클라이언트 설정 실시]
main_webview.setWebChromeClient(new WebChromeClient() {
// TODO [웹뷰 Alert 메시지]
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
S_Log._W_(S_FinalMsg.AL_TITLE + " " + S_FinalMsg.LOG_Event, new String[]{
"URL :: " + String.valueOf(url),
"MESSAGE :: " + String.valueOf(message)
});
// -------------------------------------------------------------
// [커스텀 팝업창 표시]
//*
C_Ui_View.observableAlert(A_Webview.this, S_FinalMsg.AL_TITLE, message, S_FinalMsg.AL_OK, S_FinalMsg.AL_NO)
.subscribeOn(AndroidSchedulers.mainThread()) // [Observable (생성자) 로직을 IO 스레드에서 실행 : 백그라운드]
.observeOn(Schedulers.io()) // [Observer (관찰자) 로직을 메인 스레드에서 실행]
.subscribe(new Observer<Boolean>() { // [Observable.create 타입 지정]
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull Boolean value) {
if (value == true){ // [확인 클릭]
result.confirm();
}
else { // [취소 클릭]
result.cancel();
}
}
@Override
public void onError(@NonNull Throwable e) {
S_Log._E_(S_FinalMsg.LOG_Error_State, new String[]{
"ERROR :: " + String.valueOf(e.getMessage())
});
}
@Override
public void onComplete() {
}
});
return true;
// */
// -------------------------------------------------------------
// return super.onJsAlert(view, url, message, result); // TODO [웹 팝업창 사용]
// -------------------------------------------------------------
}
});
반응형
'Android' 카테고리의 다른 글
Comments