Domanda

E 'possibile fare riferimento alla libreria javax.script.ScriptEngine durante lo sviluppo di un'applicazione Android? Se non v'è comunque possibile valutare un'espressione javascript in Android?

È stato utile?

Soluzione

javax.script.ScriptEngine non è una parte di default di Android, ma si potrebbe facilmente vaso eventuali librerie necessari (supponendo che la dimensione è ragionevole, non sono sicuro) e includerli nel progetto.

Altri suggerimenti

Per le classi javax.script.ScriptEngine, javax.script.ScriptEngineFactory e così via, è possibile aggiungere il jsr223.jar al progetto Android: basta copiare il file .jar nella directory libs, e aggiungerlo da Properties- > Java Build Path.

Queste classe permetterà i motori 223-compliant JSR per la compilazione. È quindi possibile fare new SomeScriptEngienFactory().getScriptEngine() per ottenere un motore. Sono riuscito a fare questo con JNLua 1.0.4 e Rhino 1.7R2.

Il file jsr223.jar può essere scaricato da http: //www.java2s .com / Codice / Jar / j / Downloadjsr223jar.htm , un link diretto è http://www.java2s.com/Code/JarDownload/jsr223/jsr223.jar.zip .

In base a questo messaggio , javax.script.ScriptEngine non è disponibile in Android SDK. È possibile provare i passi di seguito per includere la libreria, ma il codice non potrà eseguire, anche se verrà compilato.

Utilizzo di Android Development Toolkit in Windows, ho eseguito le seguenti operazioni per ottenere biblioteca javax.script.

  1. Fare clic sul progetto, è andato a Properties (progetto).
  2. Nella costruire il percorso di Java, ho scelto scheda Librerie.
  3. Seleziona Aggiungi Biblioteca si trova sul lato destro centro della scheda
  4. Seleziona JRE Sistema Bibliotecario sotto Add Libreria e fare clic su Avanti ...
  5. Seleziona area di lavoro di default JRE (JRE 7)
  6. Fare clic su Fine.
  7. Fare clic su OK Sentiero Java Corporatura di esistere proprietà del progetto.

javax.script è stato poi caricato.

Se si desidera valutare un certo codice in JS in Android

1) per le dipendenze Gradle aggiungere ( rinoceronte ):

compile 'org.mozilla:rhino:1.7R4'

2) scrivere del codice come questo per ottenere il risultato della valutazione 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) È possibile scrivere script più complessi in JS per l'esecuzione in app Android anche (funzioni, ecc.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top