linux下使用localStorage存储数据失败,改用electron的cookies和electron-store存储数据

白泽语
2023-12-01

有一个很奇怪的问题,我在网上好像都没有发现其他人遇到过。
使用localStorage保存一些数据,在windows系统中可以正常保存,但在linux中运行.exe程序重启后,保存的数据就丢失了,或是无法重新写入新数据。
找了很久都不知道是什么原因导致的,所以改用electron-store来储存数据。

1.使用eletron自带的cookie存储信息

var session = require('electron').remote.session
session.defaultSession.cookies.set(cookie).then(() => {
  // success
  console.log('成功')
}, () => {
})

// 查询cookies。

session.defaultSession.cookies.get({name: 'clusters'}).then((cookies) => {
  console.log('cookies')
  }, () => {
  })
}).catch((error) => {
  console.log(error)
})

// 清除cookie

session.defaultSession.clearStorageData({
  origin: url,
  storages: ['cookies']}).then(() => {
  session.defaultSession.cookies.get({}).then((cookies) => {
    console.log('清楚后后所有的cookies', cookies)
  })
}).catch((error) => {
})

但关闭后,数据都消失了,未能成功保存

原因是:Electron中BrowserWindow提供比较简易的浏览器界面,但是没有直接提供cookies持久化和恢复的操作,以至于在关闭窗口后,无法恢复cookies。


2.使用electron-store
使用很简单
引入:

import ElectronStore from 'electron-store'
var store = new ElectronStore() // 存储数据

存储数据:

store.set('myWord', '66666')

读取数据

store.get('myWord')

删除数据

store.delete('myWord')
 类似资料: