Los enlaces internos no parecen funcionar en la versión 3 de Android en mi aplicación publicada. Mi aplicación apunta a Froyo en este punto.Los enlaces internos básicos no funcionan en la aplicación Honeycomb?
La aplicación funciona bien en toneladas de teléfonos, pero mi nuevo Galaxy Tab no puede manejar los enlaces internos. Se puede manejar dentro de una página HTML, es decir:
<a href="#faq">Go to faq</a> <!-- goes to FAQ link -->
Va a la etiqueta más baja en la misma página:
<a name="faq" id="faq"></a>
Sin embargo a partir de un otro archivo html, es decir, la página de índice, el enlace no se ya trabaja en Honeycomb:
<a href="mainpage.html#faq">FAQ</a> <!-- goes to error page -->
Además, si voy a un enlace interno, y de allí a un vínculo a otra página, y luego presionar el botón de retroceso, (que se reemplaza para ir a la página anterior en vista web) se obtener el mismo error, es decir:
The webpage at file:///android_asset/folder/mainpage.html#faq might be temporarily down or it may have moved permanently to a new web address
WTF! La vista web estaba solo en la página, pero respondiste 1 segundo después y no puede encontrarla. Tampoco puede enlazar desde otra página HTML, pero todo funciona bien en 1.x, 2.x, pero no 3.1 (no hemos probado 3.0)
NOTA: He visto esta pregunta casi idéntica: android_asset not working on Honeycomb? Pero no hay espacios en mi ruta de activos.
Lo he intentado con y sin el cliente web, y probé la configuración de DOM y caché en vano. He aquí un ejemplo de lo que actualmente disponibles alcrear:
browser = new WebView(this);
// browser = (WebView) findViewById(R.id.webkit); // tried with XML and without
browser.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
browser.getSettings().setJavaScriptEnabled(true);
browser.getSettings().setPluginsEnabled(true);
// browser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
// browser.getSettings().setUseWideViewPort(true);
browser.setBackgroundColor(Color.parseColor("#333333"));
browser.setInitialScale(1);
browser.getSettings().setBuiltInZoomControls(true);
final Activity MyActivity = this;
browser.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
// Make the bar disappear after URL is loaded, and changes
// string to Loading...
setProgressBarIndeterminateVisibility(true);
MyActivity.setTitle(" Loading . . . " + progress + "%");
MyActivity.setProgress(progress * 100); // Make the bar
if (progress == 100) {
setTitle(" APP TITLE YADA YADA");
setProgressBarIndeterminateVisibility(false);
}
}
});
browser.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{
// Handle the error
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url); // note I tried with and without overriding this
return true;
}
});
setContentView(browser);
browser.loadUrl("file:///android_asset/folder/page.html");
estoy teniendo el mismo problema, ¿alguna vez encontrar un solución? este sitio parece hablar de algo similar: http://www.droidnova.com/honeycomb-webview-changes-and-issues,876.html, pero no ofrece soluciones ... –
Meses después, todavía no tengo solución para esto, aparte de detectar 3.x OS y cortar el enlace interno de la URL. La funcionalidad se ve obstaculizada, pero evita el error no encontrado. – Mischa
Ahora estoy haciendo lo siguiente como una solución casi transparente. En onReceivedError, que se activa cuando la URL falla, detecto cualquier sistema operativo por encima de pan de jengibre y cortó el enlace interno para obtener la URL de la página web básica. Luego lo cargo en la vista web y hago un retraso de espera de 1/2 segundo. Luego cargué el failedURL original con el enlace interno y listo, ahora se carga. Aparentemente, el navegador está cometiendo el error clásico de intentar acceder al enlace antes de que exista. Si alguien tiene más información sobre este error, ¡soy todo oídos! – Mischa