Gibt es eine Möglichkeit, die Geschwindigkeit des Ladens einer lokalen .html
Datei in eine WebView
Datei zu verbessern. Die Dateien .html
sind im Ordner /assets
gespeichert.Android: WebView Ladegeschwindigkeit von lokalen HTML Dateien verbessern
Wie man im Video sehen kann (Sorry, Link ist gebrochen!), TextView
(rot beackground) wiedergegeben wird, bevor die transistion beginnt, während der Text in den WebView
danach gezeigt. Wie kann ich erreichen, das WebView
so schnell wie das TextView zu laden?
//current implementation
webView.setInitialScale(1);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);
webView.loadUrl("file:///android_asset/disclaimer.html");
ZUSAMMENFASSUNG
Es ist nicht möglich. Ich habe alle Kommentare hier ausprobiert und es hat keinen Unterschied gemacht.
Der Grund, warum ich fragte, war, dass wir eine Anwendung für iOS und Android hatten, die hauptsächlich aus einfachen TextViews
und Images
besteht. So hatten wir die Idee, lokalehtml
Dateien zu erstellen, die wir in beiden Anwendungen verwenden konnten. In iOS
funktioniert das wie ein Zauber, aber in Android
konnten wir die Ladezeit nicht loswerden, also hatte ich immer einen leeren Bildschirm und nach 100-200ms erscheint der Inhalt.
Ich denke, Androids WebView
startet Rendering, wenn die Aktivität sichtbar ist. Das macht total Sinn in Online-Modus, weil Sie nicht mehrere HTML-Seiten laden möchten, die der Benutzer in einem neuen Tap im Hintergrund öffnet, bevor er sie tatsächlich fokussiert. In Offline-Modus (lokale HTML-Dateien in der Anwendung assets
gespeichert) ist dieses Verhalten nicht erforderlich, aber Sie können es nicht ändern.
Jetzt sind wir wirklich jetzt warum phonegap & co saugt.
Nur für das Protokoll: Am Ende verwendete ich eine Aktivität mit einem leeren LinearLayout
Container, wo Sie Inhalte programmatisch einfügen konnten. Jeder Stil (Überschrift 1, Überschrift 2, Inhalt ...) hatte ein eigenes Layout XML-Datei
public void insertHeadline(int id){
String text = getString(id);
TextView headline = (TextView) inflater.inflate(R.layout.layout_text_headline, null, false);
headline.setText(text);
//add this TextView to the empty container
myLinearLayoutContainerView.addView(headline);
}
Können Sie bitte, wie Vermögenswerte anderswo kopieren? – soommy12