2016-07-11 10 views
0

Ich brauche etwas Hilfe, wie man CSS injiziert, bevor man WebView zeigt. Schätze jede Hilfe.Wie wird CSS vor dem Anzeigen von WebView eingefügt?

Ich muss CSS in WebView von Assets injizieren, bevor das WebView zeigt.

+1

Vielleicht zeigen, was Sie versucht haben, und sagen nicht "ich Hilfe will". Kennzeichnung für Schließung, da dies keine Anstrengung zeigt. – basic

Antwort

1

Sie sollten URL-Inhalt manuell in Ihre HTML-Struktur laden. Setzen Sie diesen Code als page.html in Ihren Assets-Ordner.

<!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> 

dann in Ihrem Java-Code:

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); 
Verwandte Themen