MesWebView.java 1.6 KB

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