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/Rooting] - LG 펌웨어 추출 및 OS 다운그레이드 (kdz file)
2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 환경설정 (4/4)
2020/07/11 - [Android/Rooting] - 안드로이드 Fridump 환경설정 (3/4)
'개발 > Android' 카테고리의 다른 글
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended (0) | 2020.07.18 |
---|---|
웹에서 안드로이드 앱을 실행 (Custom URL Scheme) (0) | 2020.07.14 |
Could not find com.android.tools.build:aapt2:4.0.0-6051327. (0) | 2020.07.11 |
byte array to hex string (0) | 2020.07.11 |
Android API Level 및 명칭 (0) | 2020.07.11 |