Maison  >  Article  >  interface Web  >  Comment appeler de manière fiable des fonctions JavaScript à partir de WebView d'Android ?

Comment appeler de manière fiable des fonctions JavaScript à partir de WebView d'Android ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-25 18:56:16206parcourir

How to Reliably Call JavaScript Functions from Android's WebView?

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 :

  • Assurez-vous que les scripts externes ne redéfinissent pas la fonction testEcho ou n'entrent pas en conflit avec le comportement attendu de l'environnement JavaScript de WebView.
  • Utilisez la console ou un outil de débogage pour vérifiez l'exécution de JavaScript dans WebView et identifiez tout conflit potentiel.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn