Android
안드로이드 하이브리드 Webview alert창 처리
일용직 코딩노동자
2020. 6. 9. 09:21
728x90
반응형
안드로이드 하이브리드 앱을 진행하면서
웹딴에서 띄운 Alert창을 네이티브에서 코드처리를 해주지않으면 정상적으로 작동하지 않는 문제가 있습니다.
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) {
new AlertDialog.Builder(MainActivity.this)
.setTitle("확 인")
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
result.confirm();
}
})
.setNegativeButton(android.R.string.cancel,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result.cancel();
}
})
.setCancelable(false)
.create()
.show();
return true;
}
@Override
public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result) {
new AlertDialog.Builder(MainActivity.this)
.setTitle("알 림")
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
result.confirm();
}
})
.setCancelable(false)
.create()
.show();
return true;
}
맨 위의 mWebView는 처음에 웹뷰 셋팅딴에서 선언해놓으신 이름입니다.
해당 구문을 onCreate안에 적어주시면 해결됩니다.
여기서 setTitle은 웹에서 작성한 Alert가 아닌 여기 네이티브에서 적어놓은 문구로 출력됩니다.
그리고 안쪽의 내용은 웹에서 지정한 내용이 출력됩니다.
728x90
반응형