一尘不染

如何从Android调用JavaScript?

javascript

我们如何从Android调用javascript?我有一个我想使用的javascript库,我想调用javascript函数并将结果值传递给android
java代码。从现在开始还没有找到答案。我设法从javascript调用android代码,但我想反过来。


阅读 646

收藏
2020-05-01

共1个答案

一尘不染

有一个hack:

  1. 绑定一些Java对象,以便可以使用WebView从Javascript调用它:

    addJavascriptInterface(javaObjectCallback, "JavaCallback")
    
  2. 通过以下方式强制在现有页面中执行javascript:

    WebView.loadUrl("javascript: var result = window.YourJSLibrary.callSomeFunction();
    window.JavaCallback.returnResult(result)");
    

(在这种情况下,您的Java类JavaObjectCallback应具有方法returnResult(..)

注意:这是安全隐患-
此网页上的所有JS代码都可以访问/调用您绑定的Java对象。最好将一些一次性cookie传递给loadUrl()并将它们传递回Java对象,以检查调用该代码是否是您的代码。

2020-05-01