2014-06-11 4 views
6

Wenn Sie Google Webfonts in meiner Android-App verwenden, die die Webansicht verwendet, funktionieren sie in Version 4.4 von Android einwandfrei. Einige Geräte mit Android 4.2 zeigen die Standardschrift, die meisten funktionieren korrekt. Unter Android 4.0 verwenden jedoch alle Schriftarten die gleiche Standardschriftart.Google Webfonts funktionieren nicht mit Web View in Android 4.0 und 4.2.2

Da wir gerne Android 4.0 und höher mit unserer App zielen, bin ich auf der Suche nach einer Möglichkeit, die Google-Webschriftarten zuverlässig arbeiten zu lassen.

Die App tut wenig mehr als das Öffnen von HTML-Dateien von einem Server in der Web-Ansicht.

Update: Es stellt sich heraus, dass einige Android 4.2.2-Geräte Google Webschriftarten nicht korrekt anzeigen. Es ist nicht klar, was diese Geräte von denen unterscheidet, die ich getestet habe und wo Webfonts korrekt funktionieren.

Was kann ich tun, damit Webschriftarten über verschiedene Android-Versionen und -Geräte zuverlässig funktionieren?

Antwort

3

Die Antworten oben gültig sind und Einblick in das Thema geben, dank moallemi und Vaiden für diejenigen. Wir können keine Webfonts unter Android 4.0 verwenden, das ist schade.

Die Lösung für unser Problem mit webfonts auf Android 4.2 war mit der Tatsache verbunden, dass in dem CSS, das Google verwendet, um die tatsächlichen Schriftartdateien zu enthalten, sie das Format angeben. Dies bedeutet, dass in Googles CSS sie haben Code wie:

src: url("http://some.google.server/some/path/FontName.ttf") format('ttf'); 

Es stellt sich heraus, dass bestimmte Schriftarten nicht in der WebView auf Android 4.2, wenn die format() Klausel in der CSS (oder <style> Knoten des HTML) . Die Lösung ist daher einfach; Das CSS sollte eine Zeile wie folgt haben:

src: url("http://some.google.server/some/path/FontName.ttf"); 

Dies macht die Schriftart funktioniert. Dies ist jedoch keine "einfache" Lösung. Da Google das CSS mit diesem Fehler bereitstellt, müssen Sie eine eigene Version der CSS-Datei erstellen, einbinden/verwenden und bereitstellen. Wenn Sie nicht möchten, dass Google den Speicherort seiner Schriftartdateien aktualisiert, müssen Sie die Schriftartdateien hosten dich selber.

1

WebView in Android 4.0.X unterstützt keine Webfonts

1

In KitKat (4.4.x), hat Google die WebView des Motors from WebKit to Chromium verändert.

Um die Vorhersagbarkeit für die Ergebnisse, die Sie tatsächlich erhalten, zu verbessern, hier ist ein list of WebKit versions per Android version. Bitte beachten Sie, dass dies keine offizielle Liste ist. Es wurde aus den gesammelten Statistiken eines bestimmten Entwicklers zusammengestellt.

Ich habe noch ein offizielles Dokument zu diesem Thema gefunden, das darauf hindeuten könnte, dass die Hersteller ihren eigenen Build von WebKit für ihre Geräte frei wählen konnten. Dies könnte die Diskrepanzen zwischen verschiedenen Geräten erklären.

Also - was tun?

  1. Für 4.4.x-Geräte ist hier ein pixel perfect guide.

  2. Für frühere Versionen, schlage ich vor Hinwendung zu schmutzigen Tricks wie diese: https://stackoverflow.com/a/7395170/606351