const { BrowserWindow, protocol } = require("electron"); const path = require("path"); module.exports = () => { let win; let init = opts => { createWindow(opts); }; let createWindow = opts => { const winURL = process.env.NODE_ENV === "development" ? `http://127.0.0.1:5501` : `file://${__dirname}/index.html`; win = new BrowserWindow({ height: 74, // client_height useContentSize: true, resizable: true, width: 920, frame: false, // backgroundColor: "#fff", title: "拉比克", show: true, skipTaskbar: true, webPreferences: { webSecurity: false, enableRemoteModule: true, backgroundThrottling: false, contextIsolation: false, webviewTag: true, devTools: true, nodeIntegration: true, // 在网页中集成Node preload: `${path.resolve(__dirname, "./preload.js")}` } }); win.loadURL(winURL); protocol.interceptFileProtocol( "image", (req, callback) => { const url = req.url.substr(8); callback(decodeURI(url)); }, error => { if (error) { console.error("Failed to register protocol"); } } ); // win.once("ready-to-show", () => win.show()); win.on("closed", () => { win = undefined; }); win.on("blur", () => { const childWindows = win.getChildWindows(); if (!childWindows.length) win.hide(); }); }; let getWindow = () => win; return { init, getWindow }; };