ElectronJS:如何从呈现的进程(浏览器 window)操作 cookie?
ElectronJS: how to manipulate cookies from rendered Process(browser window)?
我能够从主进程创建持久性 cookies (app.js)
代码:
const session = require('electron').session;
const ses = session.fromPartition('persist:name');
debugger;
// Query all cookies associated with a specific url.
ses.cookies.get({}, (error, cookies) => {
console.log(cookies); /// cookies values should be printed next time the applciation is launched.
});
// Set a cookie with the given cookie data;
// may overwrite equivalent cookies if they exist.
const cookie = {
url: 'http://www.github.com',
name: 'dummy_name',
value: 'dummy',
expirationDate: 2093792393999
};
ses.cookies.set(cookie, (error) => {
debugger;
if (error)
console.error(error);
});
但是当我在浏览器 window 中做同样的事情时,没有创建 cookie 并且 session
未定义。
请建议我应该怎么做才能在浏览器中保存持久数据。
在渲染器进程中不直接可用的内置模块(例如session
)可以通过IPC访问,remote
模块提供了一种简单的方法来做到这一点(但你应注意其局限性)。因此,只需将第一行更改为:
,您就应该能够让您的代码在渲染器进程中工作
const session = require('electron').remote.session;
我能够从主进程创建持久性 cookies (app.js)
代码:
const session = require('electron').session;
const ses = session.fromPartition('persist:name');
debugger;
// Query all cookies associated with a specific url.
ses.cookies.get({}, (error, cookies) => {
console.log(cookies); /// cookies values should be printed next time the applciation is launched.
});
// Set a cookie with the given cookie data;
// may overwrite equivalent cookies if they exist.
const cookie = {
url: 'http://www.github.com',
name: 'dummy_name',
value: 'dummy',
expirationDate: 2093792393999
};
ses.cookies.set(cookie, (error) => {
debugger;
if (error)
console.error(error);
});
但是当我在浏览器 window 中做同样的事情时,没有创建 cookie 并且 session
未定义。
请建议我应该怎么做才能在浏览器中保存持久数据。
在渲染器进程中不直接可用的内置模块(例如session
)可以通过IPC访问,remote
模块提供了一种简单的方法来做到这一点(但你应注意其局限性)。因此,只需将第一行更改为:
const session = require('electron').remote.session;