我有一个网站,我想从 Android 应用程序登录,为了提交包含正确信息的 POST 请求,他们需要一些哈希值。该网站的实现方式是通过 JavaScript 文件。我尝试跟踪它,但无法得到与 native 网站相同的结果。
所以我决定下载他们的 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();
}
}
任何帮助将不胜感激:)
谢谢
最佳答案
您可以使用Invocable
来调用已加载的Javascript的方法
Invocable inv = (Invocable) engine;
inv.invokeFunction("foo", "bar"); // invoke foo("bar")
查看此page更深入的介绍
编辑
正如 Morrison Chang 所说,Android 上显然没有 javax.script
命名空间,因此您可以检查他在评论中给出的链接的线程。
关于java - 在 Java (Android) 中运行 javascript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13592034/