Files
XCDesktop/dist-electron/preload.cjs
ssdfasd de4c101b36 feat(remote): 实现文件上传真实进度显示
- 使用分块上传替代一次性上传
- 调用 /upload/start → /upload/chunk → /upload/merge 接口
- 通过 IPC 事件实时推送上传进度到前端
- 修复 merge 时未使用目标路径的问题
2026-03-10 15:36:10 +08:00

38 lines
2.6 KiB
JavaScript

// electron/preload.ts
var import_electron = require("electron");
console.log("--- PRELOAD SCRIPT LOADED SUCCESSFULLY ---");
import_electron.contextBridge.exposeInMainWorld("electronAPI", {
exportPDF: (title, htmlContent) => import_electron.ipcRenderer.invoke("export-pdf", title, htmlContent),
selectHtmlFile: () => import_electron.ipcRenderer.invoke("select-html-file"),
updateTitlebarButtons: (symbolColor) => import_electron.ipcRenderer.invoke("update-titlebar-buttons", symbolColor),
onRemoteClipboardSyncToRemote: (callback) => {
import_electron.ipcRenderer.on("remote-clipboard-sync-to-remote", callback);
return () => import_electron.ipcRenderer.removeListener("remote-clipboard-sync-to-remote", callback);
},
onRemoteClipboardSyncFromRemote: (callback) => {
import_electron.ipcRenderer.on("remote-clipboard-sync-from-remote", callback);
return () => import_electron.ipcRenderer.removeListener("remote-clipboard-sync-from-remote", callback);
},
onRemoteClipboardAutoSync: (callback) => {
const handler = (_event, text) => callback(text);
import_electron.ipcRenderer.on("remote-clipboard-auto-sync", handler);
return () => import_electron.ipcRenderer.removeListener("remote-clipboard-auto-sync", handler);
},
onDownloadProgress: (callback) => {
const handler = (_event, data) => callback(data);
import_electron.ipcRenderer.on("download-progress", handler);
return () => import_electron.ipcRenderer.removeListener("download-progress", handler);
},
onUploadProgress: (callback) => {
const handler = (_event, data) => callback(data);
import_electron.ipcRenderer.on("upload-progress", handler);
return () => import_electron.ipcRenderer.removeListener("upload-progress", handler);
},
clipboardReadText: () => import_electron.ipcRenderer.invoke("clipboard-read-text"),
clipboardWriteText: (text) => import_electron.ipcRenderer.invoke("clipboard-write-text", text),
remoteFetchDrives: (serverHost, port, password) => import_electron.ipcRenderer.invoke("remote-fetch-drives", serverHost, port, password),
remoteFetchFiles: (serverHost, port, filePath, password) => import_electron.ipcRenderer.invoke("remote-fetch-files", serverHost, port, filePath, password),
remoteUploadFile: (id, serverHost, port, filePath, remotePath, password) => import_electron.ipcRenderer.invoke("remote-upload-file", id, serverHost, port, filePath, remotePath, password),
remoteDownloadFile: (id, serverHost, port, fileName, remotePath, localPath, password) => import_electron.ipcRenderer.invoke("remote-download-file", id, serverHost, port, fileName, remotePath, localPath, password)
});
//# sourceMappingURL=preload.cjs.map