2014-06-11 15 views
6

Quando si utilizzano i caratteri Web di Google nell'app per Android che utilizza la visualizzazione Web, funzionano correttamente nella versione 4.4 di Android. Alcuni dispositivi con Android 4.2 mostrano il carattere predefinito, la maggior parte funziona correttamente. Su Android 4.0, tuttavia, tutti i font hanno lo stesso carattere predefinito.I webfonts di Google non funzionano con Web View in Android 4.0 e 4.2.2

Perché ci piace Android 4.0 e versioni successive con la nostra app sto cercando un modo per ottenere il funzionamento affidabile dei caratteri web di Google.

L'app fa poco più dell'apertura di file html da un server nella visualizzazione Web.

Aggiornamento: Si scopre che alcuni dispositivi Android 4.2.2 non mostrano correttamente i caratteri Web di Google. Non è chiaro cosa rende questi dispositivi distinguersi da quelli che ho testato e in cui i caratteri web funzionano correttamente.

Cosa posso fare per far funzionare i caratteri Web in modo affidabile su diverse versioni e dispositivi Android?

risposta

3

Le risposte di cui sopra sono valide e danno un'idea del soggetto, grazie ad moallemi e Vaiden per quelli. Non possiamo usare i caratteri web su Android 4.0 è un peccato.

La soluzione al nostro problema con i caratteri Web su Android 4.2 era correlata al fatto che nel CSS che Google utilizza per includere i file dei font effettivi, specifica il formato. Ciò significa che nei CSS di Google hanno un codice simile:

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

Si scopre che i font non rendano nella WebView su Android 4.2 se la clausola format() è presente nel CSS (o <style> nodo del HTML) . La soluzione è quindi semplice; il CSS dovrebbe avere una riga come questa:

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

Questo fa funzionare il carattere. Questo, tuttavia, non rappresenta una soluzione "semplice". Dato che Google fornisce il CSS che contiene questo errore, devi creare, includere/utilizzare e fornire la tua versione del file CSS e se non vuoi essere soggetto all'aggiornamento del percorso dei suoi file di font, devi ospitare i file dei font te stesso.

1

WebView in Android 4.0.x non supporta i font web

1

In KitKat (4.4.x), Google ha cambiato il motore della WebView from WebKit to Chromium.

Per migliorare la prevedibilità dei risultati effettivamente ottenuti, ecco uno list of WebKit versions per Android version. Per favore, ricordati che questa non è una lista ufficiale. È stato compilato da statistiche raccolte da uno sviluppatore specifico.

Devo ancora trovare un documento ufficiale sull'argomento, che potrebbe suggerire che i produttori erano liberi di scegliere la propria build di WebKit per i propri dispositivi. Questo potrebbe spiegare le discrepanze che si riscontrano tra diversi dispositivi.

Allora - cosa fare?

  1. Per i dispositivi 4.4.x, ecco uno pixel perfect guide.

  2. Per le versioni precedenti, suggerisco rivolgendo a sporchi trucchi come questo: https://stackoverflow.com/a/7395170/606351