WebView JavaScript vincula a trabajar en contacto, pero no cuando se utiliza trackball
Pregunta
Tengo una simple actividad basado en vista web que sigue la Hola, WebView ejemplo para habilitar JavaScript y la sobrecarga shouldOverrideUrlLoading()
.
Esta actividad funciona muy bien cuando el usuario toca enlaces en la página web. Sin embargo, si el usuario utiliza la rueda de desplazamiento y hace clic en un enlace, la página de carga resultante muestra una página con JavaScript desactivado.
public class ViewUrl extends Activity {
protected WebView view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_url);
final String url = "http://www.opentable.com/phone/reviews.aspx?rid=2947";
view = (WebView) findViewById(R.id.widget1);
view.getSettings().setJavaScriptEnabled(true);
view.loadUrl( url );
view.setWebViewClient( new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
}
}
El archivo view_url.xml es sencillo:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<WebView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/widget1" />
</RelativeLayout>
A continuación se presentan algunas capturas de pantalla que muestran tanto el comportamiento correcto e incorrecto.
Haga clic en el uso táctil (CORRECTO):
clic usando táctil (CORRECTO) http://img.skitch.com/20090908-g2acnrpb1riuq11ys3p1u6fd4d .png
Haga clic usando trackball (incorrecto):
clic mediante trackball (incorrecto) http://img.skitch.com/20090908-my23yxakudwhheq875j2hcwg6h .png
¿Alguna idea de cómo puedo solucionar el comportamiento trackball a ser el mismo que el comportamiento táctil? O al menos permitir a JS cuando se hace clic en los enlaces a través de la rueda de desplazamiento?
Solución
Parece ser que el "Hola, WebView" ejemplo se rompe. Por sugerencia de alguien en el canal de IRC, quité la anulación de shouldOverrideUrlLoading()
y todo parece que funciona a las mil maravillas.
revisado el código de trabajo:
public class ViewUrl extends Activity {
protected WebView view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_url);
final String url = "http://www.opentable.com/phone/reviews.aspx?rid=2947";
view = (WebView) findViewById(R.id.widget1);
view.getSettings().setJavaScriptEnabled(true);
view.loadUrl( url );
view.setWebViewClient( new WebViewClient() ); // probably not necessary if you don't do anything else with the WebViewClient
}
}