Cargar html local en WebView?

Quiero cargar un html local en un WebView SIN usar “file: ///” porque eso no permite las cookies. ¿Hay alguna manera de usar algo como “localhost”?

En segundo lugar, no pude encontrar una forma de habilitar las cookies en getSettings (). Porque las cookies no están permitidas mientras se usa “file: ///”.

Solo puedes hacer algo como eso. Esta solución carga HTML de una variable String:

String html = "Hello, World!"; String mime = "text/html"; String encoding = "utf-8"; WebView myWebView = (WebView)this.findViewById(R.id.myWebView); myWebView.getSettings().setJavaScriptEnabled(true); myWebView.loadDataWithBaseURL(null, html, mime, encoding, null); 

EDITAR: intente configurar el primer parámetro (baseURL) de loadDataWithBaseURL () para sus necesidades

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); WebView view = (WebView) findViewById(R.id.webView1); try { InputStream input = getResources().openRawResource(R.raw.lights); Reader is = new BufferedReader( new InputStreamReader(input, "windows-1252")); //InputStream input = getAssets().open("ws.TXT"); int size; size = input.available(); byte[] buffer = new byte[size]; input.read(buffer); input.close(); // byte buffer into a string javascrips = new String(buffer); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // String html = readFile(is); view.loadDataWithBaseURL("file:///android_res/raw/", javascrips, "text/html", "UTF-8", null); } 

Prueba este código Esto funciona para mi.

 WebView mDesc = findViewById(R.id.descWv); WebSettings settings = mDesc.getSettings(); settings.setDefaultTextEncodingName("utf-8"); mDesc.loadData(mDescText, "text/html; charset=utf-8",null); 

Si desea acceder a localhost través de Android, debe usar http://10.0.2.2:35643/ donde 35643 es el puerto específico, si es necesario.

El siguiente código funcionó para mí.

 String base64EncodedString = null; try { base64EncodedString = android.util.Base64.encodeToString((preString+mailContent.getBody()+postString).getBytes("UTF-8"), android.util.Base64.DEFAULT); } catch (UnsupportedEncodingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } if(base64EncodedString != null) { wvMailContent.loadData(base64EncodedString, "text/html; charset=utf-8", "base64"); } else { wvMailContent.loadData(preString+mailContent.getBody()+postString, "text/html; charset=utf-8", "utf-8");