Android WebView 支持以下 JavaScript 接口:
addJavascriptInterface(Object object, String name)
: 此方法允許將一個(gè) Java 對(duì)象映射到 WebView 的 JavaScript 環(huán)境中。這樣,你就可以在 JavaScript 代碼中通過指定的名稱(name 參數(shù))訪問 Java 對(duì)象及其方法。需要注意的是,為了安全起見,從 Android 4.2(API 級(jí)別 17)開始,只有被 @JavascriptInterface
注解的方法才能被 JavaScript 調(diào)用。
evaluateJavascript(String script, ValueCallback<String> resultCallback)
: 此方法允許你在 WebView 的 JavaScript 上下文中執(zhí)行一段 JavaScript 代碼。第一個(gè)參數(shù)是要執(zhí)行的 JavaScript 代碼字符串,第二個(gè)參數(shù)是一個(gè)回調(diào)函數(shù),當(dāng) JavaScript 代碼執(zhí)行完成后,它會(huì)被調(diào)用并返回執(zhí)行結(jié)果。
loadUrl(String url)
: 此方法用于加載一個(gè)網(wǎng)頁,可以是一個(gè) URL,也可以是包含 HTML 代碼的字符串。如果你需要在 WebView 中執(zhí)行 JavaScript 代碼,可以使用這個(gè)方法加載一個(gè)包含 JavaScript 代碼的 HTML 字符串。
postUrl(String url, byte[] postData)
: 此方法類似于 loadUrl()
,但它允許你發(fā)送 POST 請(qǐng)求。第一個(gè)參數(shù)是目標(biāo) URL,第二個(gè)參數(shù)是 POST 請(qǐng)求的數(shù)據(jù)。
reload()
: 此方法用于重新加載當(dāng)前 WebView 中顯示的網(wǎng)頁。
stopLoading()
: 此方法用于停止當(dāng)前 WebView 的加載過程。
goBack()
: 此方法用于導(dǎo)航到 WebView 的歷史記錄中的上一個(gè)頁面。
goForward()
: 此方法用于導(dǎo)航到 WebView 的歷史記錄中的下一個(gè)頁面。
canGoBack()
: 此方法用于檢查 WebView 是否可以導(dǎo)航到歷史記錄中的上一個(gè)頁面。
canGoForward()
: 此方法用于檢查 WebView 是否可以導(dǎo)航到歷史記錄中的下一個(gè)頁面。
clearCache(boolean includeDiskFiles)
: 此方法用于清除 WebView 的緩存。如果參數(shù) includeDiskFiles
設(shè)置為 true
,則同時(shí)清除磁盤上的緩存文件;如果設(shè)置為 false
,則僅清除內(nèi)存中的緩存。
clearHistory()
: 此方法用于清除 WebView 的歷史記錄。
getSettings()
: 此方法返回一個(gè) WebSettings
對(duì)象,用于配置 WebView 的各種設(shè)置,例如啟用或禁用 JavaScript、設(shè)置縮放級(jí)別等。
setWebViewClient(WebViewClient client)
: 此方法用于設(shè)置一個(gè) WebViewClient
對(duì)象,用于處理 WebView 中的各種事件,例如頁面加載完成、頁面加載錯(cuò)誤等。
setWebChromeClient(WebChromeClient client)
: 此方法用于設(shè)置一個(gè) WebChromeClient
對(duì)象,用于處理 WebView 中與 Chrome 相關(guān)的事件,例如顯示或隱藏進(jìn)度條、處理 JavaScript 對(duì)話框等。
這些接口提供了豐富的功能,可以滿足大多數(shù) WebView 應(yīng)用的需求。你可以根據(jù)自己的需求選擇合適的接口來實(shí)現(xiàn)所需的功能。