Ich entwickle eine Anwendung, die etwas komplexes HTML-Rendering erfordert (im Grunde Text und Bilder, aber der Text kann einige erweiterte Funktionen wie benutzerdefinierte Schriftart und Pfad) und ich benutze Webviews zu render den Inhalt.Android Webview beendet nicht das Rendern von Text
Das Problem besteht darin, dass einige der Seiten Text in einigen Geräten nicht wiedergeben.
Ich bin mit allen drei Rückrufe:
- onPageFinished;
- onProgressChanged;
- onNewPicture (veraltet, aber einige Benutzer zusammen, dass es funktioniert)
aber selbst wenn sie ausgelöst ich einen WebView bekommen, die den Text in den meisten Seiten fehlt. Auf einigen Geräten erscheint der Text, wenn ich die Webansicht berühre, aber es handelt sich um ein fehlerhaftes Verhalten, dem man nicht trauen kann.
Ich habe auch versucht, invalidate() ständig versucht, aber es zwingt nicht den Text zu zeichnen. Ich protokolliere die Webview-Konsole und anscheinend gibt es keinen Fehler (beachten Sie, dass manchmal der Text perfekt gerendert wird und das Problem für Seiten auftritt, die zuvor richtig gerendert wurden). Ich Konfiguration meine webview wie (ich weiß, dass einige Methoden sind veraltet, aber einige andere Lösungen zusammen, dass es für dann arbeitete):
offScreenWebView.layout(0, 0, viewPortWidth, viewPortHeight);
offScreenWebView.getSettings().setUseWideViewPort(true);
offScreenWebView.getSettings().setLoadWithOverviewMode(true);
offScreenWebView.getSettings().setTextZoom(100);
offScreenWebView.setDrawingCacheEnabled(true);
offScreenWebView.getSettings().setJavaScriptEnabled(true);
offScreenWebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
offScreenWebView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND);
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
offScreenWebView.enableSlowWholeDocumentDraw();
}
ich locker bin jetzt, weil ich keine Ahnung habe, warum die Text rendert nicht und es scheint, ich kann es nicht zum Rendern zwingen.
Ich habe festgestellt, dass die Seiten, in denen der Text nicht angezeigt wird die onProgressChanged bei 90 stecken. –
I habe während des Tages ein paar Knicke gearbeitet und ich habe festgestellt, dass das Problem nicht auftritt, wenn ich die benutzerdefinierten Schriftarten lösche, aber ich muss mit benutzerdefinierten Schriftarten rendern, da das Seitenlayout von ihnen abhängt. –