mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-14 12:42:51 +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) {
|
async saveImageAs(url, params) {
|
||||||
let extension = '';
|
let extension = url.split('.').pop().split(/[#?]/)[0].toLowerCase();
|
||||||
if (utils.isLocalHost(url)) {
|
if (!['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp'].includes(extension)) {
|
||||||
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) {
|
|
||||||
extension = 'png';
|
extension = 'png';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,8 +80,6 @@ const electronMenu = {
|
|||||||
try {
|
try {
|
||||||
if (electronMenu.isBlobOrDataUrl(url)) {
|
if (electronMenu.isBlobOrDataUrl(url)) {
|
||||||
await electronMenu.writeNativeImage(filePath, nativeImage.createFromDataURL(url));
|
await electronMenu.writeNativeImage(filePath, nativeImage.createFromDataURL(url));
|
||||||
} else if (utils.isLocalHost(url)) {
|
|
||||||
await fs.promises.copyFile(utils.localAssetRestoreRealPath(url), filePath);
|
|
||||||
} else {
|
} else {
|
||||||
const writeStream = fs.createWriteStream(filePath)
|
const writeStream = fs.createWriteStream(filePath)
|
||||||
const readStream = request(url)
|
const readStream = request(url)
|
||||||
|
|||||||
49
electron/electron.js
vendored
49
electron/electron.js
vendored
@ -11,7 +11,6 @@ const {
|
|||||||
shell,
|
shell,
|
||||||
globalShortcut,
|
globalShortcut,
|
||||||
nativeTheme,
|
nativeTheme,
|
||||||
protocol,
|
|
||||||
Tray,
|
Tray,
|
||||||
Menu,
|
Menu,
|
||||||
BrowserView,
|
BrowserView,
|
||||||
@ -89,50 +88,6 @@ if (!fs.existsSync(cacheDir)) {
|
|||||||
fs.mkdirSync(cacheDir, { recursive: true });
|
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服务
|
* 启动web服务
|
||||||
*/
|
*/
|
||||||
@ -373,7 +328,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.loadUrl(browser, serverUrl, 'preload')
|
utils.loadUrl(browser, serverUrl, '/preload')
|
||||||
|
|
||||||
preloadWindow = browser;
|
preloadWindow = browser;
|
||||||
}
|
}
|
||||||
@ -1010,8 +965,6 @@ if (!getTheLock) {
|
|||||||
}
|
}
|
||||||
// SameSite
|
// SameSite
|
||||||
utils.useCookie()
|
utils.useCookie()
|
||||||
// 创建协议
|
|
||||||
createProtocol()
|
|
||||||
// 创建主窗口
|
// 创建主窗口
|
||||||
createMainWindow()
|
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或文件
|
* 加载URL或文件
|
||||||
* @param browser
|
* @param browser
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user