41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
// preload.js
|
|
const { contextBridge, ipcRenderer } = require('electron');
|
|
const { desktopCapturer } = require('electron');
|
|
|
|
console.log('Preload script loaded'); // 이 로그가 안 찍히면 preload 미로드
|
|
|
|
|
|
contextBridge.exposeInMainWorld('agentAPI', {
|
|
getEmployeeId: () => ipcRenderer.invoke('get-employee-id')
|
|
});
|
|
// preload.js
|
|
|
|
contextBridge.exposeInMainWorld('electronAPI', {
|
|
// 메인 → 렌더러 메시지 수신
|
|
receive: (channel, func) => {
|
|
ipcRenderer.on(channel, (event, ...args) => func(...args));
|
|
},
|
|
// 렌더러 → 메인 메시지 전송
|
|
send: (channel, data) => {
|
|
ipcRenderer.send(channel, data);
|
|
}
|
|
});
|
|
|
|
// desktopCapturer 노출 (보안 주의: 신뢰 가능한 코드만)
|
|
contextBridge.exposeInMainWorld('desktopCapturer', {
|
|
getSources: (options) => {
|
|
return new Promise((resolve, reject) => {
|
|
console.log(desktopCapturer);
|
|
desktopCapturer.getSources(options, (error, sources) => {
|
|
console.log('preload', sources)
|
|
if (error) {
|
|
console.error('preload err', error)
|
|
reject(error);
|
|
} else {
|
|
console.log('preload sources', sources)
|
|
resolve(sources);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}); |