fix: electron preload issue (#1603)

This commit is contained in:
Peng Xiao
2023-03-17 16:23:58 +08:00
committed by GitHub
parent 94d535f72b
commit b6407f99c4
3 changed files with 20 additions and 13 deletions

View File

@@ -21,7 +21,7 @@ async function createWindow() {
sandbox: false,
webviewTag: false, // The webview tag is not recommended. Consider alternatives like iframe or Electron's BrowserView. https://www.electronjs.org/docs/latest/api/webview-tag#warning
spellcheck: false, // FIXME: enable?
preload: join(__dirname, '../../preload/dist/index.js'),
preload: join(__dirname, '../preload/index.js'),
},
});

View File

@@ -2,15 +2,22 @@ import { protocol } from 'electron';
import { join } from 'path';
export function registerProtocol() {
protocol.interceptFileProtocol('file', (request, callback) => {
const url = request.url.replace(/^file:\/\//, '');
if (url.startsWith('./')) {
const realpath = join(
__dirname,
'../../../resources/web-static',
decodeURIComponent(url)
);
callback(realpath);
}
});
if (process.env.NODE_ENV === 'production') {
protocol.interceptFileProtocol('file', (request, callback) => {
const url = request.url.replace(/^file:\/\//, '');
const webStaticDir = join(__dirname, '../../../resources/web-static');
if (url.startsWith('./')) {
// if is a file type, load the file in resources
if (url.split('/').at(-1)?.includes('.')) {
const realpath = join(webStaticDir, decodeURIComponent(url));
callback(realpath);
} else {
// else, fallback to load the index.html instead
const realpath = join(webStaticDir, 'index.html');
console.log(realpath, 'realpath', url, 'url');
callback(realpath);
}
}
});
}
}