J'ai reçu un avertissement de la console Google Play qui me renvoyait à cette page parce que j'avais utilisé l'interface JavaScript dans mon application et proposais deux options pour résoudre le problème.
Option 1 dit:
Assurez-vous qu'aucun objet n'a été ajouté à l'interface JavaScript de toute vue Web qui charge du contenu Web non approuvé. Vous pouvez le faire en deux façons:
Assurez-vous qu'aucun objet n'est jamais ajouté à l'interface JavaScript via des appels à addJavascriptInterface.
Supprimez les objets de l'interface JavaScript dans shouldInterceptRequest via removeJavascriptInterface avant le chargement du contenu non approuvé par la WebView.
mais je ne peux pas comprendre ce que Google dit exactement sur:
Supprimez les objets de l'interface JavaScript dans shouldInterceptRequest via removeJavascriptInterface avant le chargement du contenu non approuvé par la WebView
quelqu'un peut-il me donner plus d'explications?
Je viens de publier une mise à jour sans faire quelque chose de spécial et l'avertissement a disparu MAIS pas sûr que ça reviendra ou pas
Vous pouvez résoudre ce problème de différentes manières:
Maintenant, venez à votre question sur " Supprimez des objets de l'interface JavaScript dans shouldInterceptRequest via removeJavascriptInterface avant que le contenu non approuvé ne soit chargé par WebView ": Cela signifie que votre application doit supprimer (ou désactiver) JavaScriptInterface chaque fois qu'il y a un non-HTTPS L'URL est chargée dans WebView.
Après avoir effectué l'une de ces tâches, vous devez mettre à jour l'APK sur Play Console.
La conclusion est que si vous voulez utiliser JavaScriptInterface, mieux utiliser HTTPS sur votre site web. Si vous utilisez HTTP, JavaScriptInterface ne sera pas autorisé par Google Play.
J'ai rencontré le même problème et je n'ai pas été capable de le comprendre non plus. Qu'est-ce qui a fonctionné pour moi, documenté dans Comment traiter de "Correction de la vulnérabilité d'injection dans l'interface JavaScript"? , était d'utiliser WebView.evaluateJavascript. Hélas, ce n'est pas un remplacement complet pour tous les cas d'utilisation de JavascriptInterface, mais c'est peut-être suffisant pour vos besoins.