タイトル通りです。
session ってのを使います。
下記の公式ドキュメントに詳細があります。
https://github.com/electron/electron/blob/master/docs/api/session.md#instance-methods
ソースコード
簡単なサンプルです。
"use strict";
const electron = require("electron");
const app = electron.app;
const BrowserWindow = electron.BrowserWindow;
var mainWindow = null;
// アプリの準備ができたらWindowを表示
app.on("ready", function () {
// Windowを生成
mainWindow = new BrowserWindow({
width: 600,
height: 400,
title: "Cookie test"
});
// Windowが閉じられたらmainWindowを初期化
mainWindow.on("close", function () {
mainWindow = null;
});
// 適当なHTMLをロード
mainWindow.loadURL("file://" + __dirname + "/index.html");
/* ===== ここからCookieの設定 ===== */
// 設定するCookieを定義
var cookie = {
url: "http://totoraj.net", // 対象となるURL
name: "user_name", // Cookieの名前
value: "totoraj" // Cookieの値
};
// mainWindowのCookieを設定
mainWindow.webContents.session.cookies.set(cookie, function (error) {
if (error) {
// エラーが出たら出力
console.log(error);
}
});
/* ===== ここまでCookieの設定 ===== */
});
// Windowがすべて閉じたらアプリを終了
app.on("window-all-closed", function () {
if (process.platform != "darwin") {
app.quit();
}
});
対象となる URL について
.nicovideo.jp
のようにワイルドカードを指定する場合もhttp://
を先頭につけないといけのでhttp://.nicovideo.jp
となる。
.nicovideo.jp
を設定してみるとfailed
というエラーが出たのでそもそもhttp://
かhttps://
を付けないとエラーが出る?かもしれない。
おわりに
わけあって BrowserWindow に任意の Cookie を設定したかったんだけどなかなかそれらしい記事とかがなかったのでメモ。
参考になれば幸いです。