跳到主要内容

session

session 管理一份网页的网络栈和存储。模块对象上的 defaultSession 是默认份。指定分区用 session.fromPartition。

文档:https://www.electronjs.org/docs/latest/api/session

存储和缓存​

const ses = session.fromPartition('persist:account-a');
await ses.clearStorageData({
storages: ['cookies', 'localstorage', 'indexdb', 'serviceworkers', 'cachestorage'],
});
await ses.clearCache();

cookies 属性是 Cookie 对象,可以 get、set、remove、flushStore。

网络相关​

API作用
ses.webRequest在请求发出前、收到响应头时修改或取消请求
ses.setProxy为这一份 session 设置代理或 PAC
ses.setPermissionRequestHandler回答网页的通知、定位、媒体等权限请求
ses.setDisplayMediaRequestHandler回答 getDisplayMedia,把选定的屏幕源交给页面
ses.protocol.handle在这一份 session 上注册自定义协议
ses.on('will-download')页面触发下载时改保存路径、读进度

webRequest 的回调要尽快调用 callback,所有匹配的请求都在等它。同一类钩子后注册的监听会替换先前的监听,多个业务要自己串成一个函数。

代理和协议都是 session 级别。多账号窗口要分别设置。

相关文档​