在 Android WebView 中加载 JavaScript 模态窗口(showModalDialog),你需要执行以下步骤:
- 设置 WebView 的 WebChromeClient,以便支持 JavaScript 对话框:
webView.setWebChromeClient(new WebChromeClient());
- 启用 JavaScript 支持:
WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true);
- 在加载网页之前,设置 WebView 的 WebViewClient,以便处理 JavaScript 对话框:
webView.setWebViewClient(new WebViewClient(){ @Override public boolean onJsAlert(WebView view, String url, String message, final JsResult result) { AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext()); builder.setTitle("提示") .setMessage(message) .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { result.confirm(); } }) .setCancelable(false) .create() .show(); return true; } });
- 加载包含 JavaScript 模态窗口的网页:
webView.loadUrl("https://example.com");
这样,当网页中出现 JavaScript 对话框时,WebViewClient 的 onJsAlert 方法会被调用,并显示一个 AlertDialog 来处理对话框。你可以根据自己的需求来自定义对话框的样式和行为。
请注意,Android WebView 默认情况下不支持 showModalDialog 方法,因为这是一个已经过时的方法。如果你想加载具有模态窗口的网页,最好考虑使用其他现代的 Web 技术,例如使用 HTML5 和 CSS3 实现模态窗口。