Puede cargar contenido con ajax y luego simplemente ponerlo en la vista web con loadDataWithBaseURL.
crear una página web como este objeto java
<script type="text/javascript">
function loadWithAjax() {
var httpRequest = new XMLHttpRequest();
var path = 'PATH';
var host = 'HOST';
var url = 'URL';
httpRequest.onreadystatechange = function(){
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
browserObject.onAjaxSuccess(host, url, httpRequest.responseText);
} else {
browserObject.onAjaxError(host, url, httpRequest.status);
}
}
};
httpRequest.open('GET', path, true);
httpRequest.send(null);
}
</script>
<body onload="loadWithAjax()">
BrowserObject es inyectado en Javascript.
addJavascriptInterface(this, "browserObject");
Y cárguela en webView. Debe reemplazar path/url con sus valores.
ajaxHtml = IOUtils.toString(getContext().getAssets().open("web/ajax.html"));
ajaxHtml = ajaxHtml.replace("PATH", path);
ajaxHtml = ajaxHtml.replace("URL", url);
ajaxHtml = ajaxHtml.replace("HOST", host);
loadDataWithBaseURL(host, ajaxHtmlFinal, "text/html", null, null);
Entonces manejar onAjaxSuccess/onAjaxError así:
public void onAjaxSuccess(final String host, final String url, final String html)
{
((Activity) getContext()).runOnUiThread(new Runnable()
{
@Override
public void run()
{
loadDataWithBaseURL(url, html, "text/html", null, null);
}
});
}
public void onAjaxError(final String host, final String url, final int errorCode)
{
}
Ahora usted puede manejar los errores HTTP.
Gracias, pero es que no funciona, puedo aplicar ese método, pero la vista web no provocó la misma. Lo intentaré de otra manera y si tengo éxito, publicaré la solución aquí para todos. – Vistiyos
¿Ha llamado a setWebViewClient() en el objeto WebView? Por favor pegue su código. – Mike
'clase pública se extiende EnlaceWebClient WebViewClient { \t \t pública onReceivedError vacío (vista WebView, int errorCode, descripción String, String failingUrl) { \t \t Log.d ("ERROR", "Código de error:" + Integer.toString (código de error)); \t} \t } ' – Vistiyos