MesWebView.java 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package com.mes.component;
  2. import javafx.application.Platform;
  3. import javafx.beans.value.ObservableValue;
  4. import javafx.concurrent.Worker;
  5. import javafx.embed.swing.JFXPanel;
  6. import javafx.scene.Scene;
  7. import javafx.scene.web.WebEngine;
  8. import javafx.scene.web.WebView;
  9. import netscape.javascript.JSObject;
  10. import java.util.Date;
  11. public class MesWebView extends JFXPanel {
  12. public static WebEngine engine = null;
  13. public MesWebView(String url){
  14. Platform.runLater(() -> {
  15. WebView webView = new WebView();
  16. setScene(new Scene(webView));
  17. Date date = new Date();
  18. // String url = "http://"+mes_server_ip+":8980/js/a/mes/mesQuality/check?__sid="+sessionid+"&oprno="+mes_gw+"&t="+date.getTime();
  19. System.out.print(url);
  20. engine = webView.getEngine();
  21. CallFromJs bridge = new CallFromJs();
  22. engine.getLoadWorker().stateProperty().addListener(
  23. (ObservableValue<? extends Worker.State> ov, Worker.State oldState, Worker.State newState) -> {
  24. if (newState == Worker.State.SUCCEEDED) {
  25. JSObject window = (JSObject) engine.executeScript("window");
  26. window.setMember("apps", bridge);
  27. window.setMember("sout", System.out);
  28. }
  29. }
  30. );
  31. engine.load(url);
  32. });
  33. }
  34. public void reloadWeb(){
  35. engine.reload();
  36. }
  37. }