有一个很奇怪的问题,我在网上好像都没有发现其他人遇到过。
使用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')