반응형

android webview로 작업된 프로젝트에서 간혹 ipin 인증이나 결제 모듈 팝업, sms 인증 팝업을 띄워야 할 때가 있다.

이 경우 webChromeClient의 onCreateWindow를  Override하여야 하며 webview setting을 다음과 같이 변경해야 한다.

 

1. Webview Setting 변경

WebSettings settings = webView.getSettings();

 

settings.setJavaScriptEnabled(true);

settings.setJavaScriptCanOpenWindowsAutomatically(true);

settings.setSupportMultipleWindows(true);

 

2. WebChromeClient에 onCreateWindow Override

@Override

public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {

    WebView newWebView = new WebView(MainActivity.this);

    WebSettings webSettings = newWebView.getSettings();

    webSettings.setJavaScriptEnabled(true);



    final Dialog dialog = new Dialog(MainActivity.this);

    dialog.setContentView(newWebView);

    dialog.show();



    newWebView.setWebChromeClient(new WebChromeClient() {

        @Override

        public void onCloseWindow(WebView window) {

            dialog.dismiss();

        }

    });



    ((WebView.WebViewTransport)resultMsg.obj).setWebView(newWebView);

    resultMsg.sendToTarget();

    return true;

}

 

2020/07/11 - [Android/Tips] - Could not find com.android.tools.build:aapt2:4.0.0-6051327.

2020/07/11 - [Android/Kotlin] - byte array to hex string

2020/07/11 - [Android/Tips] - Android API Level 및 명칭

2020/07/11 - [Android/Tips] - ERROR: Could not get unknown property 'com' for root project 'myApp' of type org.gradle.api.Project

2020/07/11 - [Android/Tips] - error: cannot find symbol this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);

2020/07/11 - [Android/Rooting] - LG 펌웨어 추출 및 OS 다운그레이드 (kdz file)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 환경설정 (4/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 환경설정 (3/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 환경설정 (2/4)

2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 환경설정 (1/4)

반응형
블로그 이미지

SKY STORY

,