WebView で Web ページを表示していますが、その Web ページにはボタンがあります。ボタンをクリックすると、確認ダイアログがポップアップ表示されるはずですが、WebView には表示されません。Android ブラウザーで同じ Web ページにアクセスするとポップアップ表示されます。WebView 内の Web ページから表示されるポップアップ ダイアログを処理する方法をご存知の方はいませんか?
ベストアンサー1
はい、答えを見つけました。ここにあります!
WebView で Web ページからのポップアップ確認を処理するには、WebChromeClient の onJsConfirm メソッドをオーバーライドして、ポップアップを Android Alert ダイアログとして表示する必要があります。これを行うためのコードは次のとおりです。
final Context myApp = this;
final class MyWebChromeClient extends WebChromeClient {
@Override
public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) {
new AlertDialog.Builder(myApp)
.setTitle("App Titler")
.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()
{
public void onClick(DialogInterface dialog, int which)
{
result.cancel();
}
})
.create()
.show();
return true;
}
}
WebView で WebChromeClient を設定することを忘れないでください...
mWebView.setWebChromeClient(new MyWebChromeClient());
注: これは私のコードではありませんが、見つけたもので、WebView で JavaScript 確認ダイアログを処理するのに完璧に機能します。
乾杯!