当前位置:K88软件开发文章中心编程工具Electron → 文章内容

Electron session 模块

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-24 10:21:19

由 Loen 创建,youj 最后一次修改 2016-10-08 session 模块可以用来创建一个新的 Session 对象.你也可以通过使用 webContents 的属性 session 来使用一个已有页面的 session ,webContents是BrowserWindow 的属性.const BrowserWindow = require('electron').BrowserWindow;var win = new BrowserWindow({ width: 800, height: 600 });win.loadURL("http://github.com");var ses = win.webContents.session;方法session 模块有如下方法:session.fromPartition(partition)partition String从字符串 partition 返回一个新的 Session 实例.如果 partition 以 persist: 开头,那么这个page将使用一个持久的 session,这个 session 将对应用的所有 page 可用.如果没前缀,这个 page 将使用一个历史 session.如果 partition 为空,那么将返回应用的默认 session .属性session 模块有如下属性:session.defaultSession返回应用的默认 session 对象.Class: Session可以在 session 模块中创建一个 Session 对象 :const session = require('electron').session;var ses = session.fromPartition('persist:name');实例事件实例 Session 有以下事件:Event: 'will-download'event Eventitem DownloadItemwebContents WebContents当 Electron 将要从 webContents 下载 item 时触发.调用 event.preventDefault() 可以取消下载,并且在进程的下个 tick中,这个 item 也不可用.session.defaultSession.on('will-download', function(event, item, webContents) { event.preventDefault(); require('request')(item.getURL(), function(data) { require('fs').writeFileSync('/somewhere', data); });});实例方法实例 Session 有以下方法:ses.cookiescookies 赋予你全力来查询和修改 cookies. 例如:// 查询所有 cookies.session.defaultSession.cookies.get({}, function(error, cookies) { console.log(cookies);});// 查询与指定 url 相关的所有 cookies.session.defaultSession.cookies.get({ url : "http://www.github.com" }, function(error, cookies) { console.log(cookies);});// 设置 cookie;// may overwrite equivalent cookies if they exist.var cookie = { url : "http://www.github.com", name : "dummy_name", value : "dummy" };session.defaultSession.cookies.set(cookie, function(error) { if (error) console.error(error);});ses.cookies.get(filter, callback)filter Objecturl String (可选) - 与获取 cookies 相关的 url.不设置的话就是从所有 url 获取 cookies .name String (可选) - 通过 name 过滤 cookies.domain String (可选) - 获取对应域名或子域名的 cookies .path String (可选) - 获取对应路径的 cookies .secure Boolean (可选) - 通过安全性过滤 cookies.session Boolean (可选) - 过滤掉 session 或 持久的 cookies.callback Function发送一个请求,希望获得所有匹配 details 的 cookies, 在完成的时候,将通过 callback(error, cookies) 调用 callback.cookies是一个 cookie 对象.cookie Objectname String - cookie 名.value String - cookie值.domain String - cookie域名.hostOnly String - 是否 cookie 是一个 host-only cookie.path String - cookie路径.secure Boolean - 是否是安全 cookie.httpOnly Boolean - 是否只是 HTTP cookie.session Boolean - cookie 是否是一个 session cookie 或一个带截至日期的持久 cookie .expirationDate Double (可选) - cookie的截至日期,数值为UNIX纪元以来的秒数. 对session cookies 不提供.ses.cookies.set(details, callback)details Objecturl String - 与获取 cookies 相关的 url.name String - cookie 名. 忽略默认为空.value String - cookie 值. 忽略默认为空.domain String - cookie的域名. 忽略默认为空.path String - cookie 的路径. 忽略默认为空.secure Boolean - 是否已经进行了安全性标识. 默认为 false.session Boolean - 是否已经 HttpOnly 标识. 默认为 false.expirationDate Double - cookie的截至日期,数值为UNIX纪元以来的秒数. 如果忽略, cookie 变为 session cookie.callback Function使用 details 设置 cookie, 完成时使用 callback(error) 掉哟个 callback .ses.cookies.remove(url, name, callback)url String - 与 cookies 相关的 url.name String - 需要删除的 cookie 名.callback Function删除匹配 url 和 name 的 cookie, 完成时使用 callback()调用callback.ses.getCacheSize(callback)callback Functionsize Integer - 单位 bytes 的缓存 size.返回 session 的当前缓存 size .ses.clearCache(callback)callback Function - 操作完成时调用清空 session 的 HTTP 缓存.ses.clearStorageData([options, ]callback)options Object (可选)origin String - 应当遵循 window.location.origin 的格式 scheme://host:port.storages Array - 需要清理的 storages 类型, 可以包含 : appcache, cookies, filesystem, indexdb, local storage, shadercache, websql, serviceworkersquotas Array - 需要清理的类型指标, 可以包含: temporary, persistent, syncable.callback Function - 操作完成时调用.清除 web storages 的数据.ses.flushStorageData()将没有写入的 DOMStorage 写入磁盘.ses.setProxy(config, callback)config ObjectpacScript String - 与 PAC 文件相关的 URL.proxyRules String - 代理使用规则.callback Function - 操作完成时调用.设置 proxy settings.当 pacScript 和 proxyRules 一同提供时,将忽略 proxyRules,并且使用 pacScript 配置 .proxyRules 需要遵循下面的规则:proxyRules = schemeProxies[";"<schemeProxies>]schemeProxies = [<urlScheme>"="]<proxyURIList>urlScheme = "http" | "https" | "ftp" | "socks"proxyURIList = <proxyURL>[","<proxyURIList>]proxyURL = [<proxyScheme>"://"]<proxyHost>[":"<proxyPort>]例子:http=foopy:80;ftp=foopy2 - 为 http:// URL 使用 HTTP 代理 foopy:80 , 和为 ftp:// URL HTTP 代理 foopy2:80 .foopy:80 - 为所有 URL 使用 HTTP 代理 foopy:80 .foopy:80,bar,direct:// - 为所有 URL 使用 HTTP 代理 foopy:80 , 如果 foopy:80 不可用,则切换使用 bar, 再往后就不使用代理了.socks4://foopy - 为所有

[1] [2] [3]  下一页


Electron session 模块