session
Session Управление сеансами браузера, куками, кешем, настройками прокси и т. д.
Процесс: Главный
Модуль session
может быть использован для создания новых объектов Session
.
Вы также можете получить доступ к session
существующих страниц, используя свойство session
в WebContents
, или из модуля session
.
const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ width: 800, height: 600 })
win.loadURL('https://github.com')
const ses = win.webContents.session
console.log(ses.getUserAgent())
Методы
Модуль session
имеет следующие методы:
session.fromPartition(partition[, options])
partition
string
Возвращает Session
- Экземпляр сеанса из строки partition
. При наличии Session
с таким же partition
, он будет возвращен; иначе новый экземпляр Session
будет создан с options
.
Если partition
начинается с persist:
, страница будет использовать постоянный сеанс, который доступен всем страницам в приложении с тем же partition
. если нет префикса persist:
, страница будет использовать сеанс в памяти. Если partition
пуст, то будет возвращен сеанс приложения по умолчанию.
Чтобы создать Session
с options
, вы должны убедиться, что Session
с partition
раньше никогда не использовался. Невозможно изменить options
из существующего Session
объекта.
session.fromPath(path[, options])
path
string
Returns Session
- A session instance from the absolute path as specified by the path
string. When there is an existing Session
with the same absolute path, it will be returned; otherwise a new Session
instance will be created with options
. The call will throw an error if the path is not an absolute path. Additionally, an error will be thrown if an empty string is provided.
To create a Session
with options
, you have to ensure the Session
with the path
has never been used before. Невозможно изменить options
из существующего Session
объекта.
Свойства
Модуль session
имеет следующие свойства:
session.defaultSession
Объект Session
, объект сеанса по умолчанию для приложения.
Класс: Session
Получает и устанавливает сво йства сеанса.
Процесс: Main
Этот класс не экспортируется из модуля 'electron'
. Он доступен только в качестве возвращаемого значения других методов в Electron API.
Вы можете создать объект Session
в модуле session
:
const { session } = require('electron')
const ses = session.fromPartition('persist:name')
console.log(ses.getUserAgent())
События экземпляра
Для экземпляров Session
доступны следующие события:
Событие: 'will-download'
Возвращает:
- Событие типа
event
item
DownloadItemwebContents
WebContents
Возникает, когда Electron собирается загрузить item
в webContents
.
Вызов event.preventDefault()
отменит загрузку, и item
не будет доступен со следующего тика процесса.
const { session } = require('electron')
session.defaultSession.on('will-download', (event, item, webContents) => {
event.preventDefault()
require('got')(item.getURL()).then((response) => {
require('node:fs').writeFileSync('/somewhere', response.body)
})
})
Event: 'extension-loaded'
Возвращает:
- Событие типа
event
extension
Extension
Emitted after an extension is loaded. This occurs whenever an extension is added to the "enabled" set of extensions. This includes:
- Extensions being loaded from
Session.loadExtension
. - Extensions being reloaded:
- from a crash.
- if the extension requested it (
chrome.runtime.reload()
).
Event: 'extension-unloaded'
Возвращает:
- Событие типа
event
extension
Extension
Emitted after an extension is unloaded. This occurs when Session.removeExtension
is called.
Event: 'extension-ready'
Возвращает:
- Событие типа
event
extension
Extension
Emitted after an extension is loaded and all necessary browser state is initialized to support the start of the extension's background page.
Event: 'file-system-access-restricted'
Возвращает:
- Событие типа
event
- Объект
details
origin
string - The origin that initiated access to the blocked path.isDirectory
boolean - Whether or not the path is a directory.path
string - The blocked path attempting to be accessed.
callback
Functionaction
string - The action to take as a result of the restricted path access attempt.allow
- This will allowpath
to be accessed despite restricted status.deny
- This will block the access request and trigger anAbortError
.tryAgain
- This will open a new file picker and allow the user to choose another path.
const { app, dialog, BrowserWindow, session } = require('electron')
async function createWindow () {
const mainWindow = new BrowserWindow()
await mainWindow.loadURL('https://buzzfeed.com')
session.defaultSession.on('file-system-access-restricted', async (e, details, callback) => {
const { origin, path } = details
const { response } = await dialog.showMessageBox({
message: `Are you sure you want ${origin} to open restricted path ${path}?`,
title: 'File System Access Restricted',
buttons: ['Choose a different folder', 'Allow', 'Cancel'],
cancelId: 2
})
if (response === 0) {
callback('tryAgain')
} else if (response === 1) {
callback('allow')
} else {
callback('deny')
}
})
mainWindow.webContents.executeJavaScript(`
window.showDirectoryPicker({
id: 'electron-demo',
mode: 'readwrite',
startIn: 'downloads',
}).catch(e => {
console.log(e)
})`, true
)
}
app.whenReady().then(() => {
createWindow()
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
})
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') app.quit()
})
Event: 'preconnect'
Возвращает:
- Событие типа
event
preconnectUrl
string - The URL being requested for preconnection by the renderer.allowCredentials
boolean - True if the renderer is requesting that the connection include credentials (see the spec for more details.)
Возникает, когда в процессе рендеринга запрашивается предварительное подключение к URL, как правило, из-за подсказки ресурса.
Event: 'spellcheck-dictionary-initialized'
Возвращает:
- Событие типа
event
languageCode
string - The language code of the dictionary file
Emitted when a hunspell dictionary file has been successfully initialized. This occurs after the file has been downloaded.
Event: 'spellcheck-dictionary-download-begin'
Возвращает:
- Событие типа
event
languageCode
string - The language code of the dictionary file
Emitted when a hunspell dictionary file starts downloading