1

我有一个网站,我想从一个 android 应用程序登录,为了提交带有正确信息的 POST 请求,他们需要一些散列值。该网站的方式是通过 javascript 文件。我尝试跟踪它,但我无法获得与本地网站相同的结果。

所以我决定下载他们的javascript文件并在java中运行它。

我的问题是我无法弄清楚如何在他们的文件中运行特定的方法。

到目前为止,这是我的代码,它非常简单。

public void hashIt(String valueForMethod1, String valueForMethod2){
    final ScriptEngineManager sem = new ScriptEngineManager();
    ScriptEngine engine = sem.getEngineByName("JavaScript");
    try {
        engine.eval(new java.io.FileReader("res/raw/theirFile.js"));
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (ScriptException e) {
        e.printStackTrace();
    }
}

任何帮助将非常感激 :)

谢谢

4

1 回答 1

0

您可以使用Invocable调用已加载的 Javascript 的方法

Invocable inv = (Invocable) engine;
inv.invokeFunction("foo", "bar"); // invoke foo("bar")

请参阅此页面以获取更深入的介绍

编辑

正如 Morrison Chang 所说,显然javax.scriptAndroid 上没有命名空间,因此您可以查看他在评论中提供链接的线程。

于 2012-11-27T20:02:10.783 回答