J'ai une simple activité WebView qui suit l'exemple Hello, WebView pour activer JavaScript et surcharger shouldOverrideUrlLoading()
.Les liens WebView JavaScript fonctionnent au toucher mais pas lors de l'utilisation de trackball
Cette activité fonctionne très bien lorsque l'utilisateur touche des liens sur la page Web. Cependant, si l'utilisateur utilise la boule de commande et clique sur un lien, le chargement de la page qui en résulte montre une page avec JavaScript désactivé.
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;
}
});
}
}
Le fichier view_url.xml est simple:
<?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>
Voici quelques captures d'écran montrant à la fois le comportement correct et incorrect.
Cliquez à l'aide Touch (CORRECT):
Click using Touch (CORRECT) http://img.skitch.com/20090908-g2acnrpb1riuq11ys3p1u6fd4d.png
Cliquez en utilisant trackball (INCORRECT):
Click using Trackball (INCORRECT) http://img.skitch.com/20090908-my23yxakudwhheq875j2hcwg6h.png
Toute idée comment je peux résoudre le comportement Trackball être le même que le comportement tactile? Ou au moins activer JS lorsque les liens sont cliqués via la boule de commande?