mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-14 21:02:49 +00:00
fix: 修复客户端无法打开工作报告
This commit is contained in:
parent
678868153a
commit
5a1f130bec
15
electron/electron-menu.js
vendored
15
electron/electron-menu.js
vendored
@ -58,17 +58,8 @@ const electronMenu = {
|
||||
},
|
||||
|
||||
async saveImageAs(url, params) {
|
||||
let extension = '';
|
||||
if (utils.isLocalHost(url)) {
|
||||
extension = utils.localAssetRestoreRealPath(url).split('.').pop().toLowerCase();
|
||||
} else {
|
||||
const urlExtension = url.split('.').pop().split(/[#?]/)[0].toLowerCase();
|
||||
if (['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp'].includes(urlExtension)) {
|
||||
extension = urlExtension;
|
||||
}
|
||||
}
|
||||
|
||||
if (!extension) {
|
||||
let extension = url.split('.').pop().split(/[#?]/)[0].toLowerCase();
|
||||
if (!['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp'].includes(extension)) {
|
||||
extension = 'png';
|
||||
}
|
||||
|
||||
@ -89,8 +80,6 @@ const electronMenu = {
|
||||
try {
|
||||
if (electronMenu.isBlobOrDataUrl(url)) {
|
||||
await electronMenu.writeNativeImage(filePath, nativeImage.createFromDataURL(url));
|
||||
} else if (utils.isLocalHost(url)) {
|
||||
await fs.promises.copyFile(utils.localAssetRestoreRealPath(url), filePath);
|
||||
} else {
|
||||
const writeStream = fs.createWriteStream(filePath)
|
||||
const readStream = request(url)
|
||||
|
||||
49
electron/electron.js
vendored
49
electron/electron.js
vendored
@ -11,7 +11,6 @@ const {
|
||||
shell,
|
||||
globalShortcut,
|
||||
nativeTheme,
|
||||
protocol,
|
||||
Tray,
|
||||
Menu,
|
||||
BrowserView,
|
||||
@ -89,50 +88,6 @@ if (!fs.existsSync(cacheDir)) {
|
||||
fs.mkdirSync(cacheDir, { recursive: true });
|
||||
}
|
||||
|
||||
// 在最开始就注册协议为特权协议
|
||||
protocol.registerSchemesAsPrivileged([
|
||||
{
|
||||
scheme: 'local-asset',
|
||||
privileges: {
|
||||
standard: true,
|
||||
secure: true,
|
||||
supportFetchAPI: true,
|
||||
corsEnabled: true
|
||||
}
|
||||
}
|
||||
])
|
||||
|
||||
/**
|
||||
* 创建协议
|
||||
*/
|
||||
function createProtocol() {
|
||||
protocol.handle('local-asset', async (request) => {
|
||||
const url = utils.localAssetRestoreRealPath(request.url)
|
||||
|
||||
if (url.includes('..')) {
|
||||
return new Response('Access Denied', { status: 403 })
|
||||
}
|
||||
|
||||
try {
|
||||
if (!fs.existsSync(url)) {
|
||||
return new Response('Not Found', { status: 404 })
|
||||
}
|
||||
|
||||
const data = await fs.promises.readFile(url)
|
||||
const mimeType = utils.getMimeType(url)
|
||||
|
||||
return new Response(data, {
|
||||
headers: {
|
||||
'Content-Type': mimeType
|
||||
}
|
||||
})
|
||||
} catch (error) {
|
||||
console.error('Protocol handler error:', error)
|
||||
return new Response('Internal Error', { status: 500 })
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 启动web服务
|
||||
*/
|
||||
@ -373,7 +328,7 @@ function preCreateChildWindow() {
|
||||
const originalUA = browser.webContents.session.getUserAgent() || browser.webContents.getUserAgent()
|
||||
browser.webContents.setUserAgent(originalUA + " SubTaskWindow/" + process.platform + "/" + os.arch() + "/1.0");
|
||||
|
||||
utils.loadUrl(browser, serverUrl, 'preload')
|
||||
utils.loadUrl(browser, serverUrl, '/preload')
|
||||
|
||||
preloadWindow = browser;
|
||||
}
|
||||
@ -1010,8 +965,6 @@ if (!getTheLock) {
|
||||
}
|
||||
// SameSite
|
||||
utils.useCookie()
|
||||
// 创建协议
|
||||
createProtocol()
|
||||
// 创建主窗口
|
||||
createMainWindow()
|
||||
// 预创建子窗口
|
||||
|
||||
24
electron/utils.js
vendored
24
electron/utils.js
vendored
@ -639,30 +639,6 @@ const utils = {
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 本地资源路径还原
|
||||
* @param {string} url
|
||||
* @returns {string}
|
||||
*/
|
||||
localAssetRestoreRealPath(url) {
|
||||
if (!utils.isLocalHost(url)) {
|
||||
return url
|
||||
}
|
||||
|
||||
let p0 = url.replace(/^local-asset:\/\//, '')
|
||||
|
||||
const p1 = path.join(__dirname, '.', p0)
|
||||
if (fs.existsSync(p1)) {
|
||||
return p1
|
||||
}
|
||||
|
||||
const p2 = path.join(__dirname, '..', p0)
|
||||
if (fs.existsSync(p2)) {
|
||||
return p2
|
||||
}
|
||||
return url
|
||||
},
|
||||
|
||||
/**
|
||||
* 加载URL或文件
|
||||
* @param browser
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user