【问题标题】:Is it possible Call method javascript from android without webview?是否可以在没有 webview 的情况下从 android 调用方法 javascript?
【发布时间】:2014-03-22 14:45:03
【问题描述】:

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

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

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

我想在没有 webview 的情况下从 android 调用 test function,如何实现?我该怎么办?

谢谢。

【问题讨论】:

    标签: javascript android node.js websocket


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      2018 年更新: AndroidJSCore 已被基于 V8 的 LiquidCore 取代。它不仅包括 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/

      【讨论】:

      • 请注意,AndroidJSCore 库很大(40MB 大)。开发人员目前正在寻找减少占用空间的方法。
      猜你喜欢
      • 2013-03-25
      • 2018-08-18
      • 2013-06-02
      • 1970-01-01
      • 2014-06-16
      • 1970-01-01
      • 2015-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多