mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-18 15:22:50 +00:00
feat: 桌面端使用web服务启动
This commit is contained in:
parent
64a047cd7c
commit
bf80e4b02b
38
electron/electron.js
vendored
38
electron/electron.js
vendored
@ -47,11 +47,11 @@ let mainWindow = null,
|
|||||||
mainTray = null,
|
mainTray = null,
|
||||||
isReady = false,
|
isReady = false,
|
||||||
willQuitApp = false,
|
willQuitApp = false,
|
||||||
devloadUrl = "",
|
devloadPath = path.resolve(__dirname, ".devload"),
|
||||||
devloadCachePath = path.resolve(__dirname, ".devload"),
|
|
||||||
isDevelopMode = false,
|
isDevelopMode = false,
|
||||||
serverPort = 22223,
|
serverPort = 22223,
|
||||||
serverPublicDir = path.join(__dirname, 'public');
|
serverPublicDir = path.join(__dirname, 'public'),
|
||||||
|
serverUrl = "";
|
||||||
|
|
||||||
let screenshotObj = null,
|
let screenshotObj = null,
|
||||||
screenshotKey = null;
|
screenshotKey = null;
|
||||||
@ -77,12 +77,11 @@ let showState = {},
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fs.existsSync(devloadCachePath)) {
|
if (fs.existsSync(devloadPath)) {
|
||||||
devloadUrl = fs.readFileSync(devloadCachePath, 'utf8')
|
let devloadContent = fs.readFileSync(devloadPath, 'utf8')
|
||||||
if (devloadUrl.startsWith('http')) {
|
if (devloadContent.startsWith('http')) {
|
||||||
|
serverUrl = devloadContent;
|
||||||
isDevelopMode = true;
|
isDevelopMode = true;
|
||||||
} else {
|
|
||||||
devloadUrl = "";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,7 +137,7 @@ function createProtocol() {
|
|||||||
* 启动web服务
|
* 启动web服务
|
||||||
*/
|
*/
|
||||||
async function startWebServer() {
|
async function startWebServer() {
|
||||||
if (devloadUrl) {
|
if (serverUrl) {
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -181,12 +180,7 @@ async function startWebServer() {
|
|||||||
const server = app.listen(serverPort, 'localhost', () => {
|
const server = app.listen(serverPort, 'localhost', () => {
|
||||||
console.log(`Express static file server running at http://localhost:${serverPort}/`);
|
console.log(`Express static file server running at http://localhost:${serverPort}/`);
|
||||||
console.log(`Serving files from: ${serverPublicDir}`);
|
console.log(`Serving files from: ${serverPublicDir}`);
|
||||||
|
serverUrl = `http://localhost:${serverPort}/`;
|
||||||
// 如果没有设置devloadUrl,则设置为本地服务器地址
|
|
||||||
if (!devloadUrl) {
|
|
||||||
devloadUrl = `http://localhost:${serverPort}/`;
|
|
||||||
}
|
|
||||||
|
|
||||||
resolve(server);
|
resolve(server);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -272,7 +266,7 @@ function createMainWindow() {
|
|||||||
electronMenu.webContentsMenu(mainWindow.webContents)
|
electronMenu.webContentsMenu(mainWindow.webContents)
|
||||||
|
|
||||||
// 加载地址
|
// 加载地址
|
||||||
utils.loadUrlOrFile(mainWindow, devloadUrl)
|
utils.loadUrl(mainWindow, serverUrl)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -379,7 +373,7 @@ function preCreateChildWindow() {
|
|||||||
const originalUA = browser.webContents.session.getUserAgent() || browser.webContents.getUserAgent()
|
const originalUA = browser.webContents.session.getUserAgent() || browser.webContents.getUserAgent()
|
||||||
browser.webContents.setUserAgent(originalUA + " SubTaskWindow/" + process.platform + "/" + os.arch() + "/1.0");
|
browser.webContents.setUserAgent(originalUA + " SubTaskWindow/" + process.platform + "/" + os.arch() + "/1.0");
|
||||||
|
|
||||||
utils.loadUrlOrFile(browser, devloadUrl, 'preload')
|
utils.loadUrl(browser, serverUrl, 'preload')
|
||||||
|
|
||||||
preloadWindow = browser;
|
preloadWindow = browser;
|
||||||
}
|
}
|
||||||
@ -524,10 +518,10 @@ function createChildWindow(args) {
|
|||||||
.webContents
|
.webContents
|
||||||
.executeJavaScript(`if(typeof window.__initializeApp === 'function'){window.__initializeApp('${hash}')}else{throw new Error('no function')}`, true)
|
.executeJavaScript(`if(typeof window.__initializeApp === 'function'){window.__initializeApp('${hash}')}else{throw new Error('no function')}`, true)
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
utils.loadUrlOrFile(browser, devloadUrl, hash)
|
utils.loadUrl(browser, serverUrl, hash)
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
utils.loadUrlOrFile(browser, devloadUrl, hash)
|
utils.loadUrl(browser, serverUrl, hash)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 预创建下一个窗口
|
// 预创建下一个窗口
|
||||||
@ -550,7 +544,7 @@ function updateChildWindow(browser, args) {
|
|||||||
|
|
||||||
const hash = args.hash || args.path;
|
const hash = args.hash || args.path;
|
||||||
if (hash) {
|
if (hash) {
|
||||||
utils.loadUrlOrFile(browser, devloadUrl, hash)
|
utils.loadUrl(browser, serverUrl, hash)
|
||||||
}
|
}
|
||||||
if (args.name) {
|
if (args.name) {
|
||||||
const er = childWindow.find(item => item.browser == browser);
|
const er = childWindow.find(item => item.browser == browser);
|
||||||
@ -1870,8 +1864,8 @@ function exportDiagram(event, args, directFinalize) {
|
|||||||
transparent: args.format == 'png' && (args.bg == null || args.bg == 'none'),
|
transparent: args.format == 'png' && (args.bg == null || args.bg == 'none'),
|
||||||
});
|
});
|
||||||
|
|
||||||
if (devloadUrl) {
|
if (serverUrl) {
|
||||||
browser.loadURL(devloadUrl + 'drawio/webapp/export3.html').then(_ => { }).catch(_ => { })
|
browser.loadURL(serverUrl + 'drawio/webapp/export3.html').then(_ => { }).catch(_ => { })
|
||||||
} else {
|
} else {
|
||||||
browser.loadFile('./public/drawio/webapp/export3.html').then(_ => { }).catch(_ => { })
|
browser.loadFile('./public/drawio/webapp/export3.html').then(_ => { }).catch(_ => { })
|
||||||
}
|
}
|
||||||
|
|||||||
10
electron/utils.js
vendored
10
electron/utils.js
vendored
@ -658,15 +658,15 @@ const utils = {
|
|||||||
/**
|
/**
|
||||||
* 加载URL或文件
|
* 加载URL或文件
|
||||||
* @param browser
|
* @param browser
|
||||||
* @param url
|
* @param serverUrl
|
||||||
* @param hash
|
* @param hash
|
||||||
*/
|
*/
|
||||||
loadUrlOrFile(browser, url, hash = null) {
|
loadUrl(browser, serverUrl, hash = null) {
|
||||||
if (url) {
|
if (serverUrl) {
|
||||||
if (hash) {
|
if (hash) {
|
||||||
url = `${url}#${hash}`.replace(/\/*#\/*/g, '/')
|
serverUrl = `${serverUrl}#${hash}`.replace(/\/*#\/*/g, '/')
|
||||||
}
|
}
|
||||||
browser.loadURL(url).then(_ => { }).catch(_ => { })
|
browser.loadURL(serverUrl).then(_ => { }).catch(_ => { })
|
||||||
} else {
|
} else {
|
||||||
const options = {}
|
const options = {}
|
||||||
if (hash) {
|
if (hash) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user