CSAPP/src/preload.ts

40 lines
1.3 KiB
TypeScript
Raw Normal View History

2025-04-29 18:36:29 +08:00
// See the Electron documentation for details on how to use preload scripts:
// https://www.electronjs.org/docs/latest/tutorial/process-model#preload-scripts
import { contextBridge, ipcRenderer } from 'electron';
contextBridge.exposeInMainWorld('electronAPI', {
// 打开新标签页
onOpenTab: (callback: (webContentId: number, url: string) => void) => {
ipcRenderer.on('webview-new-window', (_event, webContentId, url) => callback(webContentId, url));
},
// 获取当前屏幕的缩放比例和分辨率
getPrimaryDisplay: () => ipcRenderer.invoke('get-primary-display'),
// 检查URL是否可用
checkUrlAvailable: (url: string) => ipcRenderer.invoke('check-url-available', url),
// 设置webview的cookie
setWebviewCookie: (url: string, cookie: string) => ipcRenderer.invoke('set-webview-cookie', url, cookie),
// 设置 sessionStorage
setSessionStorage: (key: string, value: string) => {
window.sessionStorage.setItem(key, value);
},
// 获取 sessionStorage
getSessionStorage: (key: string) => {
return window.sessionStorage.getItem(key);
},
// 删除 sessionStorage
removeSessionStorage: (key: string) => {
window.sessionStorage.removeItem(key);
2025-04-30 17:28:03 +08:00
},
// 清空 sessionStorage
clearSessionStorage: () => {
window.sessionStorage.clear();
}
});