如何从java代码调用javascript函数

我试图从java类调用一个javascript函数,但我得到这些错误:

-Could not find method sun.misc.Service.installedProviders, referenced from method javax.script.ScriptEngineManager.initEngines -Could not find method sun.misc.Service.providers, referenced from method javax.script.ScriptEngineManager.initEngines -Could not find method sun.misc.Service.installedProviders, referenced from method javax.script.ScriptEngineManager.initEngines -java.lang.VerifyError: javax.script.ScriptEngineManager 

这里的代码:

  public void sendResult(){ ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("js"); String script = "function send() {"+"var id_result = window.MyPGP.getResult();"+ "document.getElementById('id_result').value = id_result;"+"console.log(\"change the box value\");"; try { engine.eval(script); Invocable invocableEngine = (Invocable) engine; invocableEngine.invokeFunction("send"); } catch (ScriptException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } 

我正在努力做的是,当付款完成时,在此类中的其他方法中调用此函数以获得付款结果,并将其打印在主html中的框中。

  ScriptEngine engine = manager.getEngineByName("JavaScript"); 

这有用吗?

你可以做这样的事情

 super.loadUrl("file:///android_asset/www/index.html", 20000); super.loadUrl("javascript: { var pageFlag = '" + flag + "';}"); // Your Javascript function here 

使用此代码

 import javax.script.*; public class InvokeScriptFunction { public static void main(String[] args) throws Exception { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("JavaScript"); // JavaScript code in a String String script = "function hello(name) { print('Hello, ' + name); }"; // evaluate script engine.eval(script); // javax.script.Invocable is an optional interface. // Check whether your script engine implements or not! // Note that the JavaScript engine implements Invocable interface. Invocable inv = (Invocable) engine; // invoke the global function named "hello" inv.invokeFunction("hello", "Scripting!!" ); } } 

祝好运