티스토리 뷰
WebView로 앱을 만들고 있는데 본인인증하는 본인인증 버튼을 눌러도 아무런 동작이 안되는 문제 발생.
검색을 해서 onCreateWindow() 함수를 정의해 줬지만, 화면이 겹쳐보이는 문제가 다시 발생.
onCreateWindow 함수로 검색을 해서 원하는 문제를 해결할 수 있었다.
1. WebView의 설정
KOTLIN
webview.apply {
settings.javaScriptEnabled = true
settings.setSupportMultipleWindows(true)
settings.javaScriptCanOpenWindowsAutomatically = true
}
2. WebChromeClient의 onCreateWindow() 설정
@Override
public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
// Dialog Create Code
WebView newWebView = new WebView(mActivity);
WebSettings webSettings = newWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
final Dialog dialog = new Dialog(mActivity);
dialog.setContentView(newWebView);
ViewGroup.LayoutParams params = dialog.getWindow().getAttributes();
params.width = ViewGroup.LayoutParams.MATCH_PARENT;
params.height = ViewGroup.LayoutParams.MATCH_PARENT;
dialog.getWindow().setAttributes((android.view.WindowManager.LayoutParams) params);
dialog.show();
newWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onCloseWindow(WebView window) {
dialog.dismiss();
}
});
// WebView Popup에서 내용이 안보이고 빈 화면만 보여 아래 코드 추가
newWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return false;
}
});
((WebView.WebViewTransport)resultMsg.obj).setWebView(newWebView);
resultMsg.sendToTarget();
return true;
}
2020.03.17 추가 내용
Popup WebView에 내용이 안보이는 문제가 발생.
Dialog용 Webview에 shouldOverrideUrlLoading을 override 처리 해줘니 해결.
newWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return false;
}
});
자세한 내용과 설명은 아래의 출처에서...
'안드로이드' 카테고리의 다른 글
android.os.FileUriExposedException (0) | 2019.12.23 |
---|---|
WebView 동영상 자동재생 설정 변경 (0) | 2019.11.13 |
Push Message로 새로운 Activity 띄우기 (0) | 2019.01.28 |
Base64 Encoding/Decoding 한글깨짐 (0) | 2018.10.31 |
String to XML 변환 (0) | 2018.10.31 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- px to dp
- SWIFT
- base64
- px -> dp
- nodejs
- Activity 크기 변경
- 한글깨짐
- 이미지파일보기
- VolleyFileUploadRequest
- 새로올린테스트앱이안보이네
- 알림소리끄기
- 난왜테스트가안될까
- 알림허용
- Kotlin
- 음원파일재생
- 이미지파일공유
- FileDataPart
- app restart
- 인앱 업데이트
- #gradle.properties
- 웹뷰
- 작업은했는데
- areNotificationsEnabled
- webview
- 알림소리묵음처리
- 안드로이드
- Android
- height변경
- onShowCustomView
- #buildconofig
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함