26 lines
1.0 KiB
TypeScript
26 lines
1.0 KiB
TypeScript
//electron\preload.ts
|
|
import { contextBridge, ipcRenderer } from 'electron';
|
|
// 在文件顶部添加类型声明
|
|
interface Message {
|
|
role: 'user' | 'assistant' | 'system';
|
|
content: string;
|
|
}
|
|
|
|
contextBridge.exposeInMainWorld('electronAPI', {
|
|
// 天气接口
|
|
getWeather: (params: { lon: number; lat: number }) =>
|
|
ipcRenderer.invoke('get-weather', params),
|
|
// 新闻接口
|
|
getNews: () => ipcRenderer.invoke('get-news'),
|
|
|
|
// 聊天接口
|
|
chatWithDeepseek: (messages: Message[]) => ipcRenderer.invoke('chat-with-deepseek', { messages }),
|
|
onChatStreamChunk: (callback: (event: unknown, chunk: string) => void) =>
|
|
ipcRenderer.on('chat-stream-chunk', callback),
|
|
onChatStreamEnd: (callback: () => void) =>
|
|
ipcRenderer.on('chat-stream-end', callback),
|
|
onChatStreamError: (callback: (event: unknown, error: string) => void) =>
|
|
ipcRenderer.on('chat-stream-error', callback),
|
|
removeListener: (channel: string, callback: (...args: any[]) => void) =>
|
|
ipcRenderer.removeListener(channel, callback)
|
|
}); |