Masquer WebView jusqu'à ce que le JavaScript est fait
J'ai une webview
WebView wv;
wv = (WebView)findViewById(R.id.webView1);
wv.loadUrl("http://example.com/");
Simplement dit.
:
onPageFinished
J'ai:
wv.loadUrl("javascript:(function() { " + "document.getElementsByClassName('centered leaderboard_container')[0].style.display = 'none'; " + "document.getElementsByClassName('n')[0].style.display = 'none'; " + "document.getElementsByClassName('paginator')[0].style.display = 'none'; " + "document.getElementsByTagName('ul')[0].style.display = 'none'; " + "document.getElementsByTagName('tr')[0].style.display = 'none'; " + "})()");
J'ai mis webview visibilité de l'INVISIBLE
Comment puis-je définir la visibilité VISIBLE après le JavaScript est fait?
Vous pouvez maintenant voir la page entière pour un deuxième et que le JavaScript est fait..
Quelqu'un?
ps. Le site web n'est pas la mienne, c'est la 3ème partie du site web
OriginalL'auteur GromDroid | 2013-05-02
Vous devez vous connecter pour publier un commentaire.
Testés sur les API 17 émulateur et il fonctionne.
Vous pouvez injecter du code javascript à partir de Java pour le web.
Et n'vice-versa, une fois que l'url est chargé d'appeler à partir de javascript à une fonction sur notre code Java, et d'exécuter les
setVisibility()
. Pour ce faire, vous allez ajouter un JS interface.Voici le code:
Cette fonctionnalité va être exécutée pour chaque page. Une fois sur la 3ème partie serveur, vous avez à gérer quoi faire avec chaque demande,
webClient.shouldOverrideUrlLoading()
peut vous aider.Mise à jour de réponse:
J'ai pu reproduire ce que vous avez dit, pour la dernière version que nous devrions faire:
Je l'ai ajouté et importés
android.webkit.JavascriptInterface
Référence: JavascriptInterface méthodes de WebViews doit maintenant être annoté
J'ai mis à jour la réponse, nous allons voir si cela fonctionne.
Je vois encore la "totalité" de la page pour un deuxième et que le JavaScript cacher les éléments.. @AlexBcn
Mettre
javascript:(function(){"+"document.getElementById('Id').style.display ='none';"+"window.CallToAnAndroidFunction.setVisible();})()
au lieu de diviser les deux script sur deux loadUrls. Si la webview a été placé à l'invisible, setVisible sera la dernière commande executted.Tellement bizarre, ça ne fonctionne toujours pas pour moi.. vous Pouvez peut-être m'envoyer un APK ou d'un projet ZIP afin que je puisse tester votre version? @AlexBcn
OriginalL'auteur AlexBcn
J'ai eu le même problème de @GromDroid.
Peut-être pas la meilleure solution mais ça marche:
J'ai ajouté un retard d'une demi seconde avant de prendre la webview visible.
OriginalL'auteur Spettacolo83