Atitit。Js调用后台语言 java c# php swing android swt的方法大总结
4. Js 调用Java Nashorn引擎,可以绑定对象1
1. Js调用后台语言有三种方法
绑定方法,绑定对象,直接使用api引入宿主环境
2. Swt BrowserFunction 绑定方法
BrowserFunction 是个非常有意思的类,它可以为 Browser 永久绑定一个 JavaScript 方法,它的构造函数是 BrowserFunction(browser:Browser, name:String)
3. Android webview 可以绑定对象
webView.addJavascriptInterface(new browExtObj(this), "browExt");
webView.addJavascriptInterface(new JsBridge(this), "jsBridge");
作者:: ★(attilax)>>> 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
4. Js 调用Java Nashorn引擎,可以绑定对象
4.1. 绑定对象方式
package aaaAddr;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.script.SimpleBindings;
public class js2java {
public static void main(String[] args) throws ScriptException {
// Nashorn——在JDK 8中融合Java与JavaScript之力.htm
// …或者你可以在Java中传递绑定,它们是可以从JavaScript引擎内部访问的全局变量
ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
ScriptEngine nashorn = scriptEngineManager.getEngineByName("nashorn");
int valueIn = 10;
SimpleBindings simpleBindings = new SimpleBindings();
simpleBindings.put("globalValue", valueIn);
simpleBindings.put("extObj", new Obj());
Object o = nashorn.eval("print (globalValue)", simpleBindings);
o = nashorn.eval("print (extObj.play('aaa'))", simpleBindings);
System.out.println(o);
}
}
4.2. 在Nashorn中直接使用Java类
前面已经提到,Nashorn最强大的功能之一源于在JavaScript中调用Java类。你不仅能够访问类并创建实例,你还可以继承他们,调用他们的静态方法,几乎可以做任何你能在Java中做的事。
5. 参考
atitit.javascript调用java in swt attilax 总结 - attilax的专栏 - 博客频道 - CSDN.NET.html
Nashorn——在JDK 8中融合Java与JavaScript之力.htm