【问题标题】:execute function from .js with J2V8使用 J2V8 从 .js 执行函数
【发布时间】:2016-12-15 08:30:05
【问题描述】:

我正在使用 J2V8 在 Android 上执行 JavaScript 代码。在我的 Java 代码中,我可以访问和执行单独的 .js 文件的 JavaScript 函数吗?如果可以,我该怎么做?

【问题讨论】:

标签: javascript android j2v8


【解决方案1】:

与许多 JavaScript 环境一样,您只需加载包含您希望执行的其他功能的脚本browser example。现在您可以使用添加到全局范围的任何函数:

V8 v8 = V8.createV8Runtime(); v8.executeScript(readFileAsString("script1")); // contains the function foo(); v8.executeScript(readFileAsString("script2")); // contains the function bar(x, y); v8.executeJSFunction("foo"); v8.executeJSFunction("bar", 7, 8);

【讨论】:

  • 感谢您的回答。我可以在不使用 WebView 的情况下以某种方式加载脚本吗? (我试图完全避免使用 WebView)
  • 是的,这里根本没有 webview。我只是展示了 J2V8 与浏览器的工作方式类似。
  • 1.如果我的函数返回一个对象,我可以这样得到它吗? JSObject testObject = v8.executeJSFunction("testfunction", alfa, beta); 2. 一旦这些函数添加到全局范围,我可以在我的脚本中使用它们吗?我的意思是这样的:runtime.executeVoidScript("var testObject =testfunction(alfa, beta)");
  • 是的,它会返回一个 V8Object。您需要在此对象上调用release(),因为它拥有本机句柄。回复:#2,是的,你可以像以前一样在脚本中调用这些。
  • 第二条评论中有非常小的错字?那应该说“包含函数 bar(x,y)”吗?
猜你喜欢
  • 2023-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-16
  • 1970-01-01
相关资源
最近更新 更多