我在WebView中显示一个网页,在网页上有一个按钮.当您单击该按钮时,应该弹出一个确认对话框,但它不会显示在我的WebView中.如果我在Android浏览器中访问同一个网页,它会弹出.任何人都知道如何处理来自WebView内部网页的弹出对话框?
好的,找到了答案,就在这里!
为了处理来自WebView中网页的弹出确认,您需要覆盖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确认对话框!
干杯!