我试图从一个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中的一个框中。
发布于 2017-02-16 11:14:10
使用此代码
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!!" );
}
}
祝好运
发布于 2012-07-31 19:56:34
ScriptEngine engine = manager.getEngineByName("JavaScript");
这行得通吗?
发布于 2012-08-01 14:28:36
你可以这样做
super.loadUrl("file:///android_asset/www/index.html", 20000);
super.loadUrl("javascript: { var pageFlag = '" + flag + "';}"); // Your Javascript function here
https://stackoverflow.com/questions/11739328
复制相似问题