如何在WebView中加载新文件?

时间:2017-04-18 22:06:44

标签: java javafx webview reload

我的程序有问题。我有一个带web视图的阶段,我想有时更改HTML文件,但我无法重新加载web视图并动态查看我的更改。

public void showme(String what) {
    try {
        WebEngine webEngine = webvw.getEngine();
        System.out.print("vsengine_projects/" + xoxo + "/" + what);
        URL url = this.getClass().getResource("vsengine_projects/" + xoxo + "/"  + what);
        webEngine.load(url.toString());
        System.out.println("KK");
    } catch (Exception e) {
        System.err.println("EXC " + e);
    }
}

此代码有效,但仅适用于HTML文件的第一个版本,当我在HTML文件中更改某些内容并再次调用showme()时,没有任何反应。 Html文件位于本地目录中。是否有可能动态重新加载Web视图?

1 个答案:

答案 0 :(得分:0)

我认为您需要在显示之前清除缓存。也许在函数开头调用以下代码:

java.net.CookieHandler.setDefault(new java.net.CookieManager());

我找到了如何从以下引用的answer中清除会话数据:

  

JavaFX WebView的会话cookie存储在java.net.CookieHandler

中      

要自己管理Cookie,请创建新的实例   java.net.CookieManager:

java.net.CookieManager manager = new java.net.CookieManager();
     

然后将其设为默认值:

java.net.CookieHandler.setDefault(manager);
     

要清除Cookie,只需调用removeAll方法:

manager.getCookieStore().removeAll();
     

或者只是创建cookie管理器的新实例并将其设置为默认值:

java.net.CookieHandler.setDefault(new java.net.CookieManager());