有没有办法在安卓系统中不需要WebView的情况下从Kotlin调用JS函数?
假设如下所述,我在test.js文件中有一个JS函数,
test.js:-
function helloJS(){
return "Hello from JS"
}
现在我想从Kotlin文件中调用这个函数,如
TestClass.kt:-
class TestHello{
fun getHelloFromJS(){
val name = test.helloJS()
}
}
到目前为止,我使用Webview并将JS文件加载到其中,并以回调的形式获得结果。
我正在使用,我已经成功地使用了stdlib中的Java类,但没有使用我在这里编译的Java代码。
例如,这可以很好地工作:
print(new java.util.Date());
但是对于 (单个.java文件,没有名称空间,相同的文件夹),我完全没有运气:
js> new Packages.NanoHTTPD()
js: "<stdin>", line 4: uncaught JavaScript runtime exception: TypeError: [JavaPackage NanoHTTPD] is not a function, it is o
我编写了一个javascript项目,它广泛使用默认参数,例如:
function hello(x = true){
...
}
现在我想从命令行调用我的代码。我试过使用Rhino、Nashorn和Node,但它们在遇到默认参数时都会抛出错误。在Rhino中,错误是:
js: "resource.js", line 6: missing ) after formal parameters
js: function hello(x = true){
js: ..................^
js: "resource.js", line 1: Com
我使用的是Mozilla的Rhino实现(不是与JDK捆绑在一起的实现)。读过这个帖子后: --我认为我是在正确的轨道上,但是下面的实现失败了,因为:
Exception in thread "main" org.mozilla.javascript.EvaluatorException: Access to Java class "adapter1" is prohibited. (test#2)
at org.mozilla.javascript.DefaultErrorReporter.runtimeError(DefaultErrorReporter.j