JavaFX学习笔记 —— WebView中正确与JavaScript交互的使用方法
前言
最近在开发 FX 的项目,在学习使用WebView中,遇到了一些种种问题
- 关于如何加载本地html文件
- 关于如何与JavaScript交互
思考
根据网上各类教程关于如何加载 本地HTML文件的方式,部分都是采取URL读取到HTML文件
但是由于我使用Maven构建的项目,在项目根目录下拥有一个 resource文件夹存放html文件
光通过使用 class.getResource() 在测试环境下,是在test/java/src 中找资源文件
而这样我该如何不使用这种方式,拿到我项目根目录的 resource文件夹下的HTML文件呢?
分析
添加file:/// 头 带上本地项目路径即可
示例代码
String dir = System.getProperty("user.dir").concat("/resource/"+ fileName + ".html");
String prefix = "file:///";
String path = prefix + dir;
WebView webView = new WebView();
WebEngine webEngine = webView.getEngine();
webEngine.load(path);
即可!
如何和JavaScript正确交互
通过查阅资料显示
- WebEngine.executeScript(String script) 与JavaScript进行交互
直接执行该行代码 可能 出现方法 not function
增加一条load事件,等待页面加载完毕之后再进行执行方法!
webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>() {
@Override
public void changed(ObservableValue<? extends Worker.State> observable, Worker.State oldValue, Worker.State newValue) {
if(newValue == Worker.State.SUCCEEDED){
Object obj = webEngine.executeScript("方法()");
System.out.println(obj);
}
}
});
即可!
结束语
JavaFX学习笔记 —— WebView中正确与JavaScript交互的使用方法
- 如果对你有帮助的话可以给我点赞收藏,十分感谢
- 致力做优、好、细、精学习笔记分享给大家
- 可以转载 需标明 出处 本文链接。
- 笔者一个开源项目:我的世界开服助手 希望大家可以点一下star哦
感谢你的观看。