在我的Android应用程序中需要调用javascript函数。如果我使用webview调用android工作正常。 但是我想在没有webview的情况下打电话,我使用android作为客户端,node.js作为服务器,我希望在没有webview的情况下进行通信。
例如在我的javascript中我有这个功能
function test(){
//script for insert data here
}
我想从没有webview的android调用测试函数,如何实现?我该怎么办?
感谢。
答案 0 :(得分:2)
UPDATE 2018: AndroidJSCore已被LiquidCore取代,后者基于V8。它不仅包括V8引擎,而且所有Node.js都可用。
原始答案: 见AndroidJSCore。它是Android的JavaScriptCore的完整端口,运行JavaScript时没有庞大,缓慢的WebView。
示例代码段:
JSContext context = new JSContext();
context.evaluateScript("a = 10");
JSValue newAValue = context.property("a");
System.out.println(df.format(newAValue.toNumber())); // 10.0
String script =
"function factorial(x) { var f = 1; for(; x > 1; x--) f *= x; return f; }\n" +
"var fact_a = factorial(a);\n";
context.evaluateScript(script);
JSValue fact_a = context.property("fact_a");
System.out.println(df.format(fact_a.toNumber())); // 3628800.0
答案 1 :(得分:0)
您可以使用ScriptEngine在java或Rhino库中运行javascripts。