JavaScript – Rhino Android Library – 在 Android 代码中调用

huangapple 未分类评论49阅读模式
英文:

JavaScript - Rhino Android Library - Invoking in Android Code

问题

以下是翻译好的内容:

我正在使用rhino-android库在Java中调用JavaScript代码,但我不知道如何在Java中处理JavaScript中的回调。

JavaScript代码:

function TestingFunction(data, callback){
    callback(data);
}

我正试图在Java-Android代码中调用相同的函数:

invocable.invokeFunction("TestingFunction", "12345", ?(如何处理回调))

有人可以建议如何在Java代码中处理来自JavaScript的回调吗?

英文:

I am using rhino-android library to invoke java script code in java but I am not getting how to handle callback in javascript in java.

Java script code

   function TestingFunction(data, callback ){
        callback(data);
    }

I am trying to invoke the same in java- Android code

invocable.invokeFunction("TestingFunction","12345", ?(How to handle callback))

Can anyone suggest how to handle callback from javascript in java code ?

答案1

得分: 0

将Java回调传递给Rhino中的JavaScript函数应该通过实现org.mozilla.javascript.Function接口来实现,类似于以下方式:

invocable.invokeFunction("TestingFunction", "12345", 
      new org.mozilla.javascript.Function() {

    @Override
    public Object call(Context cx, Scriptable scope, Scriptable thisObj,
          Object[] args) {

        String data = (String) args[0];
        // 进行操作...
    }
});
英文:

Passing a Java callback to a JavaScript function in Rhino should be possible by implementing the org.mozilla.javascript.Function interface, something like this:

invocable.invokeFuntion("TestingFunction", "12345", 
      new org.mozilla.javascript.Function() {

    @Override
    public Object call(Context cx, Scriptable scope, Scriptable thisObj,
          Object[] args) {

        String data = (String) args[0];
        // do stuff...
    });

huangapple
  • 本文由 发表于 2020年7月27日 14:19:42
  • 转载请务必保留本文链接:https://java.coder-hub.com/63109662.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定