31 lines
1.3 KiB
TypeScript
31 lines
1.3 KiB
TypeScript
import { contextBridge, ipcRenderer } from 'electron'
|
|
|
|
const electronAPI = {
|
|
sendMessage: (message: string) => ipcRenderer.send('message', message),
|
|
|
|
getJarVersion: () => ipcRenderer.invoke('get-jar-version'),
|
|
|
|
downloadUpdate: (downloadUrl: string) => ipcRenderer.invoke('download-update', downloadUrl),
|
|
getDownloadProgress: () => ipcRenderer.invoke('get-download-progress'),
|
|
installUpdate: () => ipcRenderer.invoke('install-update'),
|
|
cancelDownload: () => ipcRenderer.invoke('cancel-download'),
|
|
getUpdateStatus: () => ipcRenderer.invoke('get-update-status'),
|
|
|
|
// 添加文件保存对话框 API
|
|
showSaveDialog: (options: any) => ipcRenderer.invoke('show-save-dialog', options),
|
|
// 添加文件夹选择对话框 API
|
|
showOpenDialog: (options: any) => ipcRenderer.invoke('show-open-dialog', options),
|
|
// 添加文件写入 API
|
|
writeFile: (filePath: string, data: Uint8Array) => ipcRenderer.invoke('write-file', filePath, data),
|
|
|
|
onDownloadProgress: (callback: (progress: any) => void) => {
|
|
ipcRenderer.on('download-progress', (event, progress) => callback(progress))
|
|
},
|
|
removeDownloadProgressListener: () => {
|
|
ipcRenderer.removeAllListeners('download-progress')
|
|
}
|
|
}
|
|
|
|
contextBridge.exposeInMainWorld('electronAPI', electronAPI)
|
|
|
|
export type ElectronApi = typeof electronAPI |