From 0e633f55529ee4feb7cd7d3355e0695051f9c04e Mon Sep 17 00:00:00 2001 From: monkeyWie Date: Fri, 2 Nov 2018 11:23:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=BC=E5=AE=B9windows=20xp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/pdown/gui/DownApplication.java | 15 +++++++++------ .../gui/http/controller/NativeController.java | 2 +- main/src/main/resources/application.yml | 2 +- main/src/main/resources/windows/logo_xp.png | Bin 0 -> 20510 bytes 4 files changed, 11 insertions(+), 8 deletions(-) create mode 100644 main/src/main/resources/windows/logo_xp.png diff --git a/main/src/main/java/org/pdown/gui/DownApplication.java b/main/src/main/java/org/pdown/gui/DownApplication.java index 91d3aa8a..65afe6ae 100644 --- a/main/src/main/java/org/pdown/gui/DownApplication.java +++ b/main/src/main/java/org/pdown/gui/DownApplication.java @@ -62,7 +62,7 @@ public class DownApplication extends Application { private static final String OS = OsUtil.isWindows() ? "windows" : (OsUtil.isMac() ? "mac" : "linux"); - private static final String ICON_NAME = OS + "/logo.png"; + private static final String ICON_PATH = OS + (OsUtil.isWindowsXP() ? "/logo_xp.png" : "/logo.png"); public static DownApplication INSTANCE; @@ -91,8 +91,11 @@ public void start(Stage primaryStage) throws Exception { initEmbedHttpServer(); initExtension(); initTray(); - initWindow(); - initBrowser(); + //xp不支持webview + if (!OsUtil.isWindowsXP()) { + initWindow(); + initBrowser(); + } loadUri(null, true, true); } @@ -217,7 +220,7 @@ private void initTray() throws AWTException { // 获得系统托盘对象 SystemTray systemTray = SystemTray.getSystemTray(); // 获取图片所在的URL - URL url = Thread.currentThread().getContextClassLoader().getResource(ICON_NAME); + URL url = Thread.currentThread().getContextClassLoader().getResource(ICON_PATH); // 为系统托盘加托盘图标 Image trayImage = Toolkit.getDefaultToolkit().getImage(url); Dimension trayIconSize = systemTray.getTrayIconSize(); @@ -280,7 +283,7 @@ private void initWindow() { stage.setY((bounds.getHeight() - height) / 2); stage.setMinWidth(width); stage.setMinHeight(height); - stage.getIcons().add(new javafx.scene.image.Image(Thread.currentThread().getContextClassLoader().getResourceAsStream(ICON_NAME))); + stage.getIcons().add(new javafx.scene.image.Image(Thread.currentThread().getContextClassLoader().getResourceAsStream(ICON_PATH))); stage.setResizable(true); //关闭窗口监听 stage.setOnCloseRequest(event -> { @@ -319,7 +322,7 @@ public void show(boolean isTray) { public void loadUri(String uri, boolean isTray, boolean isStartup) { String url = "http://127.0.0.1:" + FRONT_PORT + (uri == null ? "" : uri); boolean autoOpen = PDownConfigContent.getInstance().get().isAutoOpen(); - if (PDownConfigContent.getInstance().get().getUiMode() == 0) { + if (OsUtil.isWindowsXP() || PDownConfigContent.getInstance().get().getUiMode() == 0) { if (!isStartup || autoOpen) { try { Desktop.getDesktop().browse(URI.create(url)); diff --git a/main/src/main/java/org/pdown/gui/http/controller/NativeController.java b/main/src/main/java/org/pdown/gui/http/controller/NativeController.java index 752c9fda..68540910 100644 --- a/main/src/main/java/org/pdown/gui/http/controller/NativeController.java +++ b/main/src/main/java/org/pdown/gui/http/controller/NativeController.java @@ -371,7 +371,7 @@ public FullHttpResponse checkCert(Channel channel, FullHttpRequest request) thro public FullHttpResponse installCert(Channel channel, FullHttpRequest request) throws Exception { Map data = new HashMap<>(); boolean status; - if (OsUtil.isUnix()) { + if (OsUtil.isUnix() || OsUtil.isWindowsXP()) { if (!AppUtil.checkIsInstalledCert()) { ExtensionCertUtil.buildCert(AppUtil.SSL_PATH, AppUtil.SUBJECT); } diff --git a/main/src/main/resources/application.yml b/main/src/main/resources/application.yml index 01badce0..42ee576b 100644 --- a/main/src/main/resources/application.yml +++ b/main/src/main/resources/application.yml @@ -1,4 +1,4 @@ -version: 3.3 +version: 3.31 spring: profiles: active: @environment@ diff --git a/main/src/main/resources/windows/logo_xp.png b/main/src/main/resources/windows/logo_xp.png new file mode 100644 index 0000000000000000000000000000000000000000..793ea4b49ed49837d24f03cf7d7f1e02f18ecaee GIT binary patch literal 20510 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