如何在显示WebView之前注入CSS?

时间:2016-07-11 15:12:40

标签: android android-webview

在显示WebView之前,我需要一些关于如何注入CSS的帮助。感谢任何帮助。

我需要在WebView显示之前从资产中将CSS注入WebView。

1 个答案:

答案 0 :(得分:1)

您应该手动将网址内容加载到您的html结构中。将此代码作为page.html放在您的资源文件夹中。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">
    <style type="text/css">
        // your css code here
    </style>
</head>
<body>
    ${body}
</body>
</html>

然后在你的java代码中:

String pageBody; // get page body by httpUrlConnection or okhttp or...

String html = FileUtils.readFromAssets("page.html", context);

// replace pageBody with ${body} in your html file
html = html.replace("${body}", pageBody); 

WebView webView = (WebView) getView().findViewById(R.id.webView);
webView.getSettings().setAllowFileAccess(true);
WebSettings settings = webView.getSettings();
settings.setDefaultTextEncodingName("utf-8");
settings.setJavaScriptEnabled(true);
webView.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "utf-8", null);