Electron 如何访问窗口内的本地存储数据所有已关闭事件

Electron 如何访问窗口内的本地存储数据所有已关闭事件,electron,local-storage,Electron,Local Storage,我对Electron是个新手,一直在试用Electron react样板文件以备我的应用。我确实需要发送一个API请求,其中包含保存在本地存储器中的数据,以防通过单击窗口关闭按钮关闭electron应用程序。我尝试为以下事件添加代码 app.on('ready',createWindow); const createWindow=async()=>{ 主窗口=新浏览器窗口({ 秀:假,, 网络首选项:{ 无融合:对 } }); mainWindow.on('关闭',()=>{ 警报(“123”)

我对Electron是个新手,一直在试用Electron react样板文件以备我的应用。我确实需要发送一个API请求,其中包含保存在本地存储器中的数据,以防通过单击窗口关闭按钮关闭electron应用程序。我尝试为以下事件添加代码

app.on('ready',createWindow);
const createWindow=async()=>{
主窗口=新浏览器窗口({
秀:假,,
网络首选项:{
无融合:对
}
});
mainWindow.on('关闭',()=>{
警报(“123”);
const user=JSON.parse(localStorage.getItem('currentUser');
//…服务电话
});
};
app.on('window-all-closed',()=>{
const user=JSON.parse(localStorage.getItem('currentUser');
//…服务电话
});
关闭应用程序时,出现以下两个错误:

Reference Error: alert is not defined

有人能帮我一下,让我知道我在上面犯了什么错误。

你不能这样做,也不能在更近的时间内根据。但您可以在关闭窗口之前将本地存储发送到主脚本。为此:

  • 使用窗口选项在预加载时添加新脚本:
    const win=新浏览器窗口({
    网络首选项:{
    预加载:'./本地存储同步.js',
    },
    })
    win.webContents.on('ipc-message-sync',(e,channel,…args)=>{
    如果(通道=='本地存储'){
    //对本地存储做些什么。
    }
    })
    
  • 创建
    本地存储sync.js
    const{ipcrender}=require('electron');
    window.addEventListener('beforeunload',()=>{
    ipcrender.sendSync('local-storage',JSON.stringify(localStorage))
    });
    
  • 这就是如何将origin的localStorage检索到主进程中的方法。但是请注意,这种方法在密集的页面加载中可能会很昂贵

    Reference Error: localStorage is not defined