La fuente del recurso no se carga en android webView
Estoy desarrollando una actividad de Android que está cargando un archivo HTML en una vista web.
Sin embargo esta acitivty no está cargando fuentes en algunos teléfonos como HTC Desire o Sony Xperia Z con androides 4.4 o 4.1.
Quiero saber si he perdido algo o sólo depende del teléfono que estoy probando mi aplicación.
private void loadToWebView(String s) { try { pageWebView.loadDataWithBaseURL("file:///android_asset/", s, "text/html", "utf-8", null); configureWebView(pageWebView); } catch (Exception e) { e.printStackTrace(); } }
Aquí está el encabezado html:
- Android reproducir video de youtube en la vista web
- Cómo obtener el nombre de archivo al hacer clic en URL en la vista web
- Obtener datos POST desde la vista Web de Android
- Problemas con Vimeo Player en Android WebView de la aplicación
- Configuración correcta de AppCache para Android WebView
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <style type="text/css"> @font-face { font-family: 'Persian'; src: url('file:///android_asset/fonts/b_yekan.ttf'); } @font-face { font-family: 'Persian2'; src: url('file:///android_asset/fonts/b_homa.ttf'); } @font-face { font-family: 'PersianTitle'; src: url('file:///android_asset/fonts/b_titr.ttf');} body {font-family: 'Persian';} h1 {font-family: 'PersianTitle';} h2 {font-family: 'Persian2';} </style>
Las fuentes se encuentran en los elementos / fuentes / de esta forma
- Reproducir Youtube HTML5 incrustado de vídeo en Android WebView
- Cómo reproducir video en Android Web view usando html5
- android webview muestra youtube.com/tv video en pantalla completa
- Android: utilice WebView para evaluar una cadena javascript y devolver el valor
- Cómo realizar un clic de botón dentro de un Webview Android
- WebSocket en Android WebView
- Prestación de HTML en un WebView con CSS personalizado
- Impedir que se active el evento de derivación al deslizar jquerymobile en la vista web de android
- En primer lugar , la ruta de fuentes debe ser relativa a su archivo HTML / CSS.
Por lo tanto, en lugar de esto:
@font-face { font-family: 'Persian'; src: url('file:///android_asset/fonts/b_yekan.ttf'); }
Utilice algo como esto:
@font-face { font-family: 'Persian'; src: url('fonts/b_yekan.ttf'); }
- En segundo lugar , debe asegurarse de que el objetivo que está probando contra realmente apoya el script en árabe.
Con eso, a continuación ofrezco un ejemplo práctico.
Assets / about_us.html :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> <style type="text/css"> @font-face { font-family: 'B Homa'; src: url('fonts/BHOMA.TTF');} @font-face { font-family: 'B Lotus'; src: url('fonts/BLOTUS.TTF');} @font-face { font-family: 'B Lotus Bold'; src: url('fonts/BLOTUSBD.TTF');} </style> </head> <body> <p style="font-family:'B Homa';font-size:20px;">B Homa: مخصص</p> <p style="font-family:'B Lotus';font-size:20px;">B Lotus: مخصص</p> <p style="font-family:'B Lotus Bold';font-size:20px;">B Lotus Bold: مخصص</p> </body> </html>
BHOMA.TTF , BLOTUS.TTF y BLOTUSBD.TTF se descargan desde bornaray.com y se almacenan en la carpeta assets/fonts/
.
LoadToWebView () , es parte de un Fragment
, por getActivity().getAssets()
tanto getActivity().getAssets()
:
private void loadToWebView() { AssetManager assetManager = getActivity().getAssets(); try { InputStream input = assetManager.open("about_us.html"); byte[] buffer = new byte[input.available()]; input.read(buffer); input.close(); mWebView.loadDataWithBaseURL("file:///android_asset/", new String(buffer), "text/html", "UTF-8", null); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
Y el resultado :
Espero que esto ayude.
- Subclasificación de SimpleCursorAdapter para incluir convertView para la conservación de la memoria
- Conversión dinámica de imagen en binario y viceversa