La recharge de page (Webview.loadUrl) entraîne l'absence de traitement (entièrement) de Javascript

L'astuce suivante pour obtenir le contenu HTML de la page après que javascript a été rendu fonctionne très bien, lorsqu'il est placé dans la onNewPicture() du PictureListener d'un WebView :

 browser.loadUrl("javascript:window.HTMLOUT.showHTML('<head>'+document.getElementsByTagName('html')[0].innerHTML+'</head>');"); 

Cependant, pour une raison quelconque, cela ne fonctionne que la première fois que la page est chargée. C'est-à-dire que le premier appel de WebView.loadUrl() obtient une version complètement rendue de la page.

Par la suite, si je recharge / actualise la page (même URL exacte), la sortie de HTMLOUT.showHTML() semble être le HTML + javascript d'origine avant que la page ne soit rendue.

L'étrange chose est que visuellement , sur le WebView lui-même, tout le contenu est là! (Même après un retard significatif … Je peux voir le fil de sablier du WebView, peut-être qu'il faut trop tard pour que Javascript soit ré-traité?)

Cela semble suggérer soit un problème d'initialisation (dans mon code), un bug dans WebView, soit un principe de mise en cache bien connu des programmeurs Web expérimentés mais avec lesquels je ne suis pas encore familier.

Mais alors, cela devient encore plus intéressant: les appels subséquents à WebView.loadUrl() entraînent la défaillance susmentionnée plusieurs (3-10) fois jusqu'à … la page est miraculeusement entièrement rendue à nouveau! (Et puis plusieurs échecs à nouveau, et ainsi de suite)

Qui peut suggérer un problème de chronométrage?

Toute suggestion sur la façon de déboguer ou de dépanner cela?

Vous devez injecter javascript après la chargement de la page! Je l'ai pris pour toujours pour le comprendre