Android WebView 本身并不直接支持自定義插件,因為它主要是一個用于加載和顯示網頁內容的組件。然而,你可以通過多種方法實現類似插件的功能。
public class MyPlugin {
private TextView textView;
public MyPlugin(TextView textView) {
this.textView = textView;
}
@JavascriptInterface
public void updateText(String newText) {
textView.setText(newText);
}
}
WebView webView = findViewById(R.id.webview);
TextView textView = findViewById(R.id.textView);
MyPlugin myPlugin = new MyPlugin(textView);
webView.addJavascriptInterface(myPlugin, "myPlugin");
然后在 JavaScript 代碼中調用這個方法:
myPlugin.updateText("Hello from JavaScript!");
shouldInterceptRequest
方法來攔截網絡請求,并根據需要進行處理。這種方法允許你在不離開 WebView 的情況下加載自定義內容或處理特定請求。webView.setWebViewClient(new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
// 在這里處理請求,例如加載自定義資源
return new WebResourceResponse("text/plain", "utf-8", new ByteArrayInputStream("Custom content".getBytes()));
}
});
總之,雖然 Android WebView 本身不支持自定義插件,但你可以通過上述方法實現類似的功能。