71 lines
1.7 KiB
JavaScript
71 lines
1.7 KiB
JavaScript
const { app, BrowserWindow, protocol } = require("electron");
|
|
const path = require("path");
|
|
|
|
console.log("Got here", process.version);
|
|
|
|
const createWindow = () => {
|
|
const WEB_FOLDER = "../dist/webapp";
|
|
const PROTOCOL = "file";
|
|
|
|
protocol.interceptFileProtocol(PROTOCOL, (request, callback) => {
|
|
// Strip protocol
|
|
let url = request.url.substring(PROTOCOL.length + 2);
|
|
if (url.endsWith("/")) {
|
|
url = url.substring(0, url.length - 1);
|
|
}
|
|
|
|
console.log("Requested url", url);
|
|
|
|
if (!/\.(js|css|png|webmanifest|map)/.exec(url)) {
|
|
url = "/index.html";
|
|
}
|
|
|
|
if (url.includes("/service_worker.js?")) {
|
|
url = "/service_worker.js";
|
|
}
|
|
|
|
// if (!url.includes(".")) {
|
|
// url = "/index.html";
|
|
// }
|
|
|
|
// Build complete path for node require function
|
|
url = path.join(__dirname, WEB_FOLDER, url);
|
|
|
|
// Replace backslashes by forward slashes (windows)
|
|
// url = url.replace(/\\/g, '/');
|
|
url = path.normalize(url);
|
|
|
|
// console.log("Requested path", url);
|
|
callback({ path: url });
|
|
});
|
|
|
|
// Create the browser window.
|
|
let mainWindow = new BrowserWindow({
|
|
width: 800,
|
|
height: 600,
|
|
webPreferences: {
|
|
// nodeIntegration: false,
|
|
preload: path.join(__dirname, "preload.js"),
|
|
},
|
|
});
|
|
|
|
// and load the index.html of the app.
|
|
mainWindow.loadURL("file://start");
|
|
// url.format({
|
|
// pathname: "index.html",
|
|
// protocol: PROTOCOL + ":",
|
|
// slashes: true,
|
|
// })
|
|
// );
|
|
};
|
|
app.on("window-all-closed", () => {
|
|
if (process.platform !== "darwin") app.quit();
|
|
});
|
|
app.whenReady().then(() => {
|
|
createWindow();
|
|
|
|
app.on("activate", () => {
|
|
if (BrowserWindow.getAllWindows().length === 0) createWindow();
|
|
});
|
|
});
|