Heim > Artikel > Web-Frontend > ## Warum verhält sich mein Android WebView so schlecht? Leere Seiten, nicht reagierende Stile, abgehackte Animationen – wie kann ich das beheben?
Probleme mit Android WebView: leeres Rendering, nicht reagierende Stiländerungen und abgehackte Animationen
Android WebView verhält sich häufig unregelmäßig, einschließlich der Anzeige leerer Seiten und des Ignorierens CSS-Änderungen und abgehackte Animationen. Diese Probleme können frustrierend sein und das Benutzererlebnis beeinträchtigen. Glücklicherweise gibt es Lösungen für diese Probleme, wie wir in dieser Diskussion untersuchen werden.
Lösung 1: Hardwarebeschleunigung aktivieren
Ab Android 4.4 (KitKat), Hardware Beschleunigung ist entscheidend für die Verbesserung der WebView-Leistung. Aktivieren Sie in Ihrer AndroidManifest.xml die Hardwarebeschleunigung, indem Sie die folgende Zeile innerhalb des
<code class="xml"><application ... android:hardwareAccelerated="true"></code>
Lösung 2: Neuzeichnen erzwingen
Eine statische letzte boolesche Variable in der WebView-Klasse ermöglicht ein ständiges Neuzeichnen der Ansicht. Dadurch können nicht reagierende Stiländerungen und leere Rendering-Probleme behoben werden. Die Verwendung dieser Methode entlädt jedoch kontinuierlich den Akku.
Erweitern Sie die WebView-Klasse wie unten gezeigt und überschreiben Sie die onDraw()-Methode:
<code class="java">import org.apache.cordova.CordovaWebView; import android.content.Context; import android.graphics.Canvas; public class MyWebView extends CordovaWebView { public static final String TAG = "MyWebView"; public MyWebView(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // Warning! This will cause the WebView to continuously be redrawn // and will drain the devices battery while the view is displayed! invalidate(); } }</code>
Weisen Sie PhoneGap an, diese benutzerdefinierte WebView-Klasse zu verwenden:
<code class="java">public void init(){ CordovaWebView webView = new MyWebView(MainActivity.this); super.init(webView, new CordovaWebViewClient(this, webView), new CordovaChromeClient(this, webView)); }</code>
Lösung 3: CrossWalk WebView
Für Android-Versionen 4.4 und höher bietet CrossWalk einen Drop-in-WebView-Ersatz mit überlegener Leistung und Stabilität. Weitere Informationen finden Sie unter crosswalk-project.org.
Zusätzliche Tipps:
Das obige ist der detaillierte Inhalt von## Warum verhält sich mein Android WebView so schlecht? Leere Seiten, nicht reagierende Stile, abgehackte Animationen – wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!