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