JavaScript์์ alert() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๋ Android WebView์์ ํ์ดํ ์์ด ์ถ๋ ฅํ๋ ๋ฐฉ๋ฒ
WebChromeClient ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ onJsAlert() ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ํ๊ณ alert ์ฐฝ์ ์ปค์คํฐ๋ง์ด์งํ ์ ์์ต๋๋ค.
webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext())
.setMessage(message)
.setPositiveButton(android.R.string.ok, null);
builder.show();
// ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ ํ ๋ฐํํฉ๋๋ค.
result.confirm();
return true;
}
});
์์ onJsAlert() ๋ฉ์๋์์๋ ํ์ดํ ์์ด JavaScript alert ์ฐฝ์ ๋ด์ฉ๋ง์ ์ถ๋ ฅํ๋ ์ปค์คํ AlertDialog๋ฅผ ๋ง๋ญ๋๋ค.
๊ฒฐ๊ณผ๋ฅผ ์ฒ๋ฆฌํ ๋, result.confirm() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ํด๋ผ์ด์ธํธ๊ฐ alert ์ฐฝ์ ์ฒ๋ฆฌํ ๊ฒ์์ ์๋ฆฌ๊ณ ,
๋ง์ง๋ง์ผ๋ก true๋ฅผ ๋ฐํํ์ฌ ํด๋ผ์ด์ธํธ๊ฐ alert ์ฐฝ์ ์ฒ๋ฆฌํ ๊ฒ์์ ์๋ฆฝ๋๋ค.
์ด ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ฉด ์๋๋ก์ด๋ WebView์์ JavaScript alert ์ฐฝ์ด ์คํ๋ ๋, ํ์ดํ ์์ด ๋ด์ฉ๋ง ์ถ๋ ฅ๋ฉ๋๋ค.