首页 > 解决方案 > 我们可以在android中自定义WebView吗

问题描述

我们可以在 WebView android 中自定义加载的网站吗?我需要自定义加载在 WebView 中的网站。我需要在加载的网站中添加新功能

标签: androidwebviewcustomization

解决方案


您可以注入 javaScript(例如可以自定义 html)。为此,您应该在 webview 中启用 js:

webview.getSettings().setJavaScriptEnabled(true);

然后您可以使用字符串调用loadUrl (),该字符串是带有前缀的 javaScript 代码,javascript:例如:

fun runJS(webView: WebView) {
   webView.loadUrl("javascript:alert('hello')");
}

要在某些页面完全加载时运行 js,onPageFinished请使用WebViewClient

val webViewClient = object : WebViewClient() {
      override fun onPageFinished(webView: WebView, url: String) {
        runJS(webView)
      }
    }
webView.webViewClient = webViewClient

您可以使用addJavascriptInterface从您的 js 代码调用您的 java 代码。

请点击下一个链接以获取更多示例:

https://medium.com/@skywall/inject-js-into-androids-webview-8845fb5902b7

https://github.com/henrychuangtw/WebView-Javascript-Inject


推荐阅读