CSS mit WebView in Android in eine Website einfügen
CSS kann nicht direkt in eine Website eingefügt werden, die über WebView angezeigt wird, es besteht die Möglichkeit der Manipulation das DOM der Seite mithilfe von JavaScript. So geht's:
1. Aktivieren Sie JavaScript in WebView:
<code class="java">webView.getSettings().setJavaScriptEnabled(true);</code>
2. Fügen Sie einen WebViewClient hinzu:
<code class="java">webView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { // Inject CSS when page is done loading injectCSS(); super.onPageFinished(view, url); } });</code>
3. Laden Sie die Website:
<code class="java">webView.loadUrl("https://www.google.com");</code>
4. Injizieren Sie CSS mit JavaScript:
<code class="java">private void injectCSS() { try { InputStream inputStream = getAssets().open("style.css"); byte[] buffer = new byte[inputStream.available()]; inputStream.read(buffer); inputStream.close(); String encoded = Base64.encodeToString(buffer, Base64.NO_WRAP); webView.loadUrl("javascript:(function() {" + "var parent = document.getElementsByTagName('head').item(0);" + "var style = document.createElement('style');" + "style.type = 'text/css';" + // Decode the CSS from BASE64 "style.innerHTML = window.atob('" + encoded + "');" + "parent.appendChild(style)" + "})()"); } catch (Exception e) { e.printStackTrace(); } }</code>
Hinweis:
Das obige ist der detaillierte Inhalt vonWie füge ich mithilfe von WebView in Android benutzerdefiniertes CSS in eine Website ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!