Java 调用js接口
1、创建一个接口
/** * 创建一个对接JavaScript的接口,接口中的方法与JavaScript中的方法对应 */ public interface JavaScriptInterface { public String getToken(); }
2、访问js接口
import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import java.io.FileReader; /** * Created by xxx on 2023-11-06. */ public class JsDemo { public static void main(String[] args) { String str = ""; // 1.创建一个JavaScript引擎 ScriptEngineManager manager = new ScriptEngineManager(); // 2.获取一个指定的名称的JavaScript引擎实例 ScriptEngine engine = manager.getEngineByName("JavaScript"); // ScriptEngine engine = manager.getEngineByName("js"); try { // 3.获取文件路径 String path = Thread.currentThread().getContextClassLoader().getResource("").getPath(); // 4.加载要执行的js文件(可多个),FileReader的参数为所要执行的js文件的路径(如果是.jar格式,建议文件与.jar分离,采用绝对路径) engine.eval(new FileReader(path + "js/abc.js")); if (engine instanceof Invocable) { // 5.从脚本引擎中返回一个给定接口的实现 Invocable invocable = (Invocable) engine; // 从脚本引擎中获取JavaScriptInterface接口对象(实例). 该接口方法由具有相匹配名称的脚本函数实现。 JavaScriptInterface executeMethod = invocable.getInterface(JavaScriptInterface.class); // 调用这个js接口 str = executeMethod.getToken(); } } catch (Exception e) { e.printStackTrace(); } System.out.println(str); } }
有些事情,没经历过不知道原理,没失败过不明白奥妙,没痛苦过不了解真谛。临渊羡鱼,不如退而结网!

浙公网安备 33010602011771号