Atitit。Js調用後臺語言 java c# php swing android swt的方法大總結 1. Js調用後臺語言有三種方法1 2. Swt BrowserFunction 綁定方法1 3. Android webview 可以綁定對象1 4. Js 調用Java Nashorn引擎,可 ...
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:[email protected]
轉載請註明來源: http://www.cnblogs.com/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