Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


WebView de Android manipula incorrectamente nuevas líneas en texto preformateado

Si empujo este HTML en WebView :

 webView.loadData("<html><body><pre>line 1\nline 2</pre></body></html>", "text/html", "utf-8"); 

Se hace como (en el emulador y también en el dispositivo)

 line 1line 2 

Opuesto a

 line 1 line 2 

Como yo esperaría. Si guardo este HTML en la tarjeta sdcard y abro el archivo en el navegador, se renderiza bien. Supongo que estoy haciendo algo mal, o esto puede ser un error. De cualquier manera, quiero empujar programaticamente HTML con líneas pregrabadas preformateadas en un WebView y tener las nuevas líneas renderizadas.

  • Anchura incorrecta en el navegador webkit de Android
  • Chrome Browser para Android ya no admite -webkit-overflow-scrolling? ¿Hay alguna alternativa?
  • 3 Solutions collect form web for “WebView de Android manipula incorrectamente nuevas líneas en texto preformateado”

    La cadena pasada a loadData necesita ser URI-escapada.

    Puede usar URLEncoder.encode() para hacer eso, pero por alguna razón WebView no decodifica el '+' nuevo a un ' ' . Un trabajo alrededor es reemplazar todos los '+' con '%20' usted mismo.

    Por ejemplo (y con la traducción '+' ):

     try { webview.loadData(URLEncoder.encode("<html><body><pre>line 1\nline 2</pre></body></html>", "utf-8").replaceAll("\\+", "%20"), "text/html", "utf-8"); } catch (UnsupportedEncodingException uee) { Log.e("webview", "", uee); } 

    Prueba esto:

     webView.loadDataWithBaseURL(...) 

    Más información aquí

    También puedes usar

     chapterWebView.loadDataWithBaseURL("file:///android_asset/NTImages/", message.replaceAll("\\n", "<br/>") , "text/html", "utf-8", "utf-8"); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.