Appel de fonctions JavaScript dans WebView sur Android
Lors de l'intégration de contenu Web dans une application Android à l'aide de WebView, il est souvent nécessaire d'interagir avec le sous-jacent JavaScript dans la page Web. Ceci peut être réalisé en appelant des fonctions JavaScript à partir du code Android.
Considérez le scénario suivant : appeler une fonction JavaScript à partir de l'application Android qui affichera un message via un Toast. La fonction JavaScript à appeler est définie comme :
function testEcho(message) { window.JSInterface.doEchoTest(message); }
Dans l'application Android, vous pouvez activer JavaScript et enregistrer une classe contenant les méthodes Java exposées :
myWebView.getSettings().setJavaScriptEnabled(true); myWebView.addJavascriptInterface(myJSInterface, "JSInterface");
Pièges courants
Malgré le respect de l'approche décrite, vous pouvez rencontrer un problème où la fonction JavaScript n'est pas invoquée. Un oubli fréquent est l'absence de guillemets doubles dans le paramètre passé à la fonction JavaScript. Assurez-vous que le paramètre est placé entre guillemets, comme indiqué ci-dessous :
myWebView.loadUrl("javascript:testEcho('Hello World!')");
Fichiers JavaScript externes
La présence de fichiers JavaScript externes référencés et utilisés dans le HTML peut potentiellement affecter l’exécution de la fonction JavaScript. Les scripts externes peuvent modifier la portée globale ou introduire leurs propres gestionnaires d'événements, ce qui peut interférer avec la gestion des commandes JavaScript par WebView. Tenez compte des éléments suivants :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!