Référence javax.script.ScriptEngine dans Android ou évaluer une expression javascript

StackOverflow https://stackoverflow.com/questions/1454425

Question

Est-il possible de faire référence à la bibliothèque javax.script.ScriptEngine lors du développement d'une application android? Dans le cas contraire est de toute façon possible d'évaluer une expression javascript dans Android?

Était-ce utile?

La solution

javax.script.ScriptEngine ne fait pas partie par défaut d'Android, mais vous pouvez facilement jar jusqu'à toutes les bibliothèques dont vous avez besoin (en supposant que la taille est raisonnable, je ne suis pas sûr) et les inclure dans votre projet.

Autres conseils

Pour les classes javax.script.ScriptEngine, javax.script.ScriptEngineFactory et ainsi de suite, vous pouvez ajouter le jsr223.jar à votre projet Android: il suffit de copier le fichier .jar dans votre répertoire libs, et l'ajouter à partir Properties- > Chemin de compilation Java.

Ces classe permettra à vos moteurs JSR 223 conformes à compilent. Vous pouvez alors faire new SomeScriptEngienFactory().getScriptEngine() pour obtenir un moteur. J'ai réussi à le faire avec JNLua 1.0.4 et Rhino 1.7R2.

Le fichier jsr223.jar peut être téléchargé à partir de http: //www.java2s .com / code / Jar / j / Downloadjsr223jar.htm , un lien direct est http://www.java2s.com/Code/JarDownload/jsr223/jsr223.jar.zip .

Selon cette après , javax.script.ScriptEngine n'est pas disponible dans Android SDK. Vous pouvez essayer les étapes ci-dessous pour inclure la bibliothèque, mais le code peut ne pas fonctionner, même si elle compilera.

Utilisation Android Development Toolkit dans Windows, je fis les étapes suivantes pour obtenir bibliothèque javax.script.

  1. clic droit sur le projet, est allé Propriétés (projet).
  2. Sous le chemin de génération Java, j'ai choisi onglet Bibliothèques.
  3. Sélectionnez Library Ajouter situé au milieu à droite de l'onglet
  4. Sélectionnez la bibliothèque système Library sous JRE Ajouter et cliquez sur Suivant ...
  5. Sélectionnez l'espace de travail par défaut JRE (jre 7)
  6. Cliquez sur Terminer.
  7. Cliquez sur OK Java chemin de génération d'exister propriétés du projet.

javax.script a ensuite été chargé.

Si vous souhaitez évaluer un certain code JS dans Android

1) à vos dépendances Gradle ajouter ( rhino ):

compile 'org.mozilla:rhino:1.7R4'

2) écrire un code comme celui-ci pour obtenir le résultat de l'évaluation JS

Context rhino = Context.enter()
// turn off optimization to work with android
rhino.optimizationLevel = -1

String evaluation = "2+2"

try {
    ScriptableProject scope = rhino.initStandardObjects()
    String result = rhino.evaluateString(scope, evaluation, "JavaScript", 1, null).toString()
} finally {
    Context.exit()
}

3) Vous pouvez écrire des scripts plus complexes JS pour exécuter dans l'application android aussi (fonctions etc.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top