Android webview 關(guān)于js模態(tài)窗(showModalDialog)加載

小云
104
2023-08-18 14:52:46

在 Android WebView 中加載 JavaScript 模態(tài)窗口(showModalDialog),你需要執(zhí)行以下步驟:

  1. 設(shè)置 WebView 的 WebChromeClient,以便支持 JavaScript 對(duì)話框:
webView.setWebChromeClient(new WebChromeClient());
  1. 啟用 JavaScript 支持:
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
  1. 在加載網(wǎng)頁(yè)之前,設(shè)置 WebView 的 WebViewClient,以便處理 JavaScript 對(duì)話框:
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;
}
});
  1. 加載包含 JavaScript 模態(tài)窗口的網(wǎng)頁(yè):
webView.loadUrl("https://example.com");

這樣,當(dāng)網(wǎng)頁(yè)中出現(xiàn) JavaScript 對(duì)話框時(shí),WebViewClient 的 onJsAlert 方法會(huì)被調(diào)用,并顯示一個(gè) AlertDialog 來(lái)處理對(duì)話框。你可以根據(jù)自己的需求來(lái)自定義對(duì)話框的樣式和行為。

請(qǐng)注意,Android WebView 默認(rèn)情況下不支持 showModalDialog 方法,因?yàn)檫@是一個(gè)已經(jīng)過時(shí)的方法。如果你想加載具有模態(tài)窗口的網(wǎng)頁(yè),最好考慮使用其他現(xiàn)代的 Web 技術(shù),例如使用 HTML5 和 CSS3 實(shí)現(xiàn)模態(tài)窗口。

0