add: base module
This commit is contained in:
@@ -1,19 +1,10 @@
|
||||
import { BrowserWindow } from 'electron';
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
import { getOrigin } from '@/main/process/index.ts';
|
||||
import { createWinodw } from './create-window.ts';
|
||||
|
||||
export const createAppPackagesPage = (window?: BrowserWindow) => {
|
||||
const mainWindow =
|
||||
window ||
|
||||
new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
webPreferences: {
|
||||
preload: path.join(__dirname, 'preload.js'), // 如果有 preload 脚本
|
||||
},
|
||||
});
|
||||
mainWindow.loadFile(path.join(__dirname, '../renderer/packages/index.html')); // Vite 构建后的文件
|
||||
const mainWindow = createWinodw(window);
|
||||
const url = new URL('/root/assistant-base-app/?link=packages', getOrigin());
|
||||
mainWindow.loadURL(url.toString());
|
||||
return mainWindow;
|
||||
};
|
||||
|
||||
22
src/main/window/page/create-window.ts
Normal file
22
src/main/window/page/create-window.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { BrowserWindow } from 'electron';
|
||||
import { fileURLToPath } from 'url';
|
||||
import path from 'path';
|
||||
import { createSession } from '../../session/index.ts';
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
export const createWinodw = (window: BrowserWindow, opts?: any) => {
|
||||
if (window) return window;
|
||||
const _session = createSession();
|
||||
return new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
...opts,
|
||||
webPreferences: {
|
||||
preload: path.join(__dirname, 'preload.js'), // 如果有 preload 脚本
|
||||
session: _session,
|
||||
webSecurity: false,
|
||||
...opts?.webPreferences,
|
||||
},
|
||||
});
|
||||
};
|
||||
@@ -1,19 +1,10 @@
|
||||
import { BrowserWindow } from 'electron';
|
||||
import path from 'path';
|
||||
import { fileURLToPath } from 'url';
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
import { getOrigin } from '@/main/process/index.ts';
|
||||
import { createWinodw } from './create-window.ts';
|
||||
|
||||
export const createEnterPage = (window?: BrowserWindow) => {
|
||||
const mainWindow =
|
||||
window ||
|
||||
new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
webPreferences: {
|
||||
preload: path.join(__dirname, 'preload.js'), // 如果有 preload 脚本
|
||||
},
|
||||
});
|
||||
mainWindow.loadFile(path.join(__dirname, '../renderer/enter/index.html')); // Vite 构建后的文件
|
||||
const mainWindow = createWinodw(window);
|
||||
const url = new URL('/root/assistant-base-app/?link=enter', getOrigin());
|
||||
mainWindow.loadURL(url.toString());
|
||||
return mainWindow;
|
||||
};
|
||||
|
||||
@@ -1,18 +1,36 @@
|
||||
import { getCacheAssistantConfig, LocalElectronAppUrl } from '@/modules/config';
|
||||
import { createEnterPage } from './enter';
|
||||
import { createAppPackagesPage } from './app-packages';
|
||||
import { getCacheAssistantConfig } from '@/modules/config/index.ts';
|
||||
import { createEnterPage } from './enter.ts';
|
||||
import { createAppPackagesPage } from './app-packages.ts';
|
||||
import { BrowserWindow } from 'electron';
|
||||
import { getOrigin } from '@/main/process/index.ts';
|
||||
import { createWinodw } from './create-window.ts';
|
||||
|
||||
export const checkShowPage = async (window?: BrowserWindow) => {
|
||||
const assistantConfig = getCacheAssistantConfig();
|
||||
const { pageApi, proxy } = assistantConfig;
|
||||
const { pageApi, proxy, loadURL } = assistantConfig;
|
||||
if (!pageApi) {
|
||||
createEnterPage(window);
|
||||
return;
|
||||
return createEnterPage(window);
|
||||
}
|
||||
if (!proxy || proxy.length === 0) {
|
||||
createAppPackagesPage(window);
|
||||
return;
|
||||
return createAppPackagesPage(window);
|
||||
}
|
||||
return window?.loadURL(LocalElectronAppUrl);
|
||||
window = createWinodw(window);
|
||||
let defaultURL = getOrigin() + '/web/note/';
|
||||
if (loadURL) {
|
||||
const url = new URL(loadURL, getOrigin());
|
||||
const urls = url.pathname.split('/');
|
||||
const [_, user, app] = urls;
|
||||
let _loadURL = url.toString();
|
||||
if (!user && !app) {
|
||||
_loadURL = defaultURL;
|
||||
}
|
||||
if (app && urls.length === 3) {
|
||||
_loadURL = url.toString() + '/';
|
||||
}
|
||||
console.log('url loadURL', _loadURL);
|
||||
window?.loadURL(_loadURL);
|
||||
return window;
|
||||
}
|
||||
window?.loadURL(defaultURL);
|
||||
return window;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user