2014-02-21 39 views
2

在我的android应用程序中需要调用javascript函数。如果我从android使用webview调用工作正常。 但我想调用没有webview,我与android作为客户端和node.js作为服务器,我想沟通两个没有webview。是否有可能从android中调用方法JavaScript而无需webview?

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

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

我想从Android的调用测试功能没有web视图,如何实现这一目标?我该怎么办?

谢谢。

回答

2

请参阅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/

+0

请注意,AndroidJSCore库是巨大的(40MB大)。开发人员目前正在寻找减少占地面积的方法。 –

相关问题