52 lines
1.5 KiB
JavaScript
52 lines
1.5 KiB
JavaScript
"use strict";
|
||
const electron = require("electron");
|
||
const IPC_CHANNELS = {
|
||
SAVE_FILE: "file:save",
|
||
READ_FILE: "file:read",
|
||
GET_SETTINGS: "settings:get",
|
||
SAVE_SETTINGS: "settings:save"
|
||
};
|
||
const electronAPI = {
|
||
// ============================================
|
||
// 文件操作 API
|
||
// ============================================
|
||
file: {
|
||
/**
|
||
* 保存文件到桌面
|
||
* @param content - 文件内容
|
||
* @param filename - 文件名(可选,默认为 demo-note.txt)
|
||
*/
|
||
save: (content, filename) => {
|
||
return electron.ipcRenderer.invoke(IPC_CHANNELS.SAVE_FILE, content, filename);
|
||
},
|
||
/**
|
||
* 从桌面读取文件
|
||
* @param filename - 文件名(可选,默认为 demo-note.txt)
|
||
*/
|
||
read: (filename) => {
|
||
return electron.ipcRenderer.invoke(IPC_CHANNELS.READ_FILE, filename);
|
||
}
|
||
},
|
||
// ============================================
|
||
// 设置操作 API
|
||
// ============================================
|
||
settings: {
|
||
/**
|
||
* 获取用户设置
|
||
* @param key - 设置键名(可选,不传返回所有设置)
|
||
*/
|
||
get: (key) => {
|
||
return electron.ipcRenderer.invoke(IPC_CHANNELS.GET_SETTINGS, key);
|
||
},
|
||
/**
|
||
* 保存用户设置
|
||
* @param key - 设置键名
|
||
* @param value - 设置值
|
||
*/
|
||
save: (key, value) => {
|
||
return electron.ipcRenderer.invoke(IPC_CHANNELS.SAVE_SETTINGS, key, value);
|
||
}
|
||
}
|
||
};
|
||
electron.contextBridge.exposeInMainWorld("electronAPI", electronAPI);
|