可以在没有webview的情况下从android调用方法javascript吗?

时间:2014-02-21 07:53:09

标签: javascript android node.js websocket

在我的Android应用程序中需要调用javascript函数。如果我使用webview调用android工作正常。 但是我想在没有webview的情况下打电话,我使用android作为客户端,node.js作为服务器,我希望在没有webview的情况下进行通信。

例如在我的javascript中我有这个功能

function test(){
    //script for insert data here
}

我想从没有webview的android调用测试函数,如何实现?我该怎么办?

感谢。

2 个答案:

答案 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

文档:http://ericwlange.github.io/

答案 1 :(得分:0)

您可以使用ScriptEngine在java或Rhino库中运行javascripts。