litian
2024-05-14 68eee6caeec1753bfba8c937ab862ef05cb42bb8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
import { contextBridge, ipcRenderer } from 'electron'
 
//桥接渲染进程与主进程
const newDownloadTask = (data) => {
  ipcRenderer.send('newDownloadTask', data)
}
const getDownloadTasks = () => {
  return ipcRenderer.sendSync('getDownloadTasks')
}
const onDownloadTaskChange = (callback) => {
  ipcRenderer.on('downloadTaskChange', (ev, data) => {
    if (data) {
      callback(JSON.parse(data))
    } else {
      callback()
    }
  })
}
const onShowMessage = (callback) => {
  ipcRenderer.on('showMessage', (ev, data) => {
    callback(JSON.parse(data))
  })
}
const onOpenUrl = (callback) => {
  ipcRenderer.on('openUrl', (ev, data) => {
    callback(data)
  })
}
const onLogout = (callback) => {
  ipcRenderer.on('logout', (ev, data) => {
    callback(data)
  })
}
const cleanTask = (data) => {
  ipcRenderer.send('cleanTask', data)
}
const cleanAll = () => {
  ipcRenderer.send('cleanAll')
}
const pauseTask = (data) => {
  ipcRenderer.send('pauseTask', data)
}
const pauseAllTask = () => {
  ipcRenderer.send('pauseAllTask')
}
const startTask = (data) => {
  ipcRenderer.send('startTask', data)
}
const startAllTask = () => {
  ipcRenderer.send('startAllTask')
}
const openPath = (data) => {
  return ipcRenderer.sendSync('openPath', data)
}
const openPathByTaskId = (data) => {
  ipcRenderer.send('openPathByTaskId', data)
}
const openSelectFileOrFolderDialog = (data) => {
  return ipcRenderer.sendSync('openSelectFileOrFolderDialog', data)
}
const getDownloadPath = () => {
  return ipcRenderer.sendSync('getDownloadPath')
}
const setDownloadPath = (path, dataStr) => {
  return ipcRenderer.sendSync('setDownloadPath', { path, dataStr })
}
const onUpdateDownloadProgress = (callback) => {
  ipcRenderer.on('updateDownloadProgress', (ev, data) => {
    callback(data)
  })
}
const onUpdateDownloadSuccess = (callback) => {
  ipcRenderer.on('updateDownloadSuccess', (ev) => {
    callback()
  })
}
const updateApp = () => {
  ipcRenderer.send('updateApp')
}
// 发行导出
const onExportTaskChange = (callback) => {
  ipcRenderer.on('exportTaskChange', (ev, data) => {
    if (data) {
      callback(JSON.parse(data))
    } else {
      callback()
    }
  })
}
 
const newExportTask = (data) => {
  ipcRenderer.send('newExportTask', data)
}
 
const getExportTasks = () => {
  return ipcRenderer.sendSync('getExportTasks')
}
const cleanExportTask = (data) => {
  ipcRenderer.send('cleanExportTask', data)
}
const cleanAllExportTask = () => {
  ipcRenderer.send('cleanAllExportTask')
}
 
contextBridge.exposeInMainWorld('electronAPI', {
  newDownloadTask,
  getDownloadTasks,
  onDownloadTaskChange,
  onOpenUrl,
  onShowMessage,
  onLogout,
  cleanTask,
  cleanAll,
  pauseTask,
  pauseAllTask,
  startTask,
  startAllTask,
  openPath,
  openPathByTaskId,
  openSelectFileOrFolderDialog,
  getDownloadPath,
  setDownloadPath,
  onUpdateDownloadProgress,
  onUpdateDownloadSuccess,
  updateApp,
  onExportTaskChange,
  newExportTask,
  getExportTasks,
  cleanExportTask,
  cleanAllExportTask,
})