WebView JavaScript vincula a trabajar en contacto, pero no cuando se utiliza trackball

StackOverflow https://stackoverflow.com/questions/1396495

  •  22-09-2019
  •  | 
  •  

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?

¿Fue útil?

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
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top