Electron + node.jsで作成したアプリでBrowserViewを使用する(Windows)
Electronにウェブコンテンツを埋め込む場合にBrowserViewを使用します。
メインプロセス
BrowserViewのインスタンスを生成します。contextIsolation: true
にします。
BrowserView#setBoundsメソッドでxy軸やwidth,heightを指定します。
view.setBounds({x: 300, y: 0, width: 400, height: 400})
BrowserView#webContents.loadURLメソッドの引数にURLを指定します。
view.webContents.loadURL('https://www.yahoo.co.jp/')
BrowserWindow#setBrowserViewメソッドの引数にBrowserViewのインスタンスを設定します。
win.setBrowserView(view) // viewを複数指定した場合は後勝ち
index.js(メインプロセス)
const { app, BrowserWindow, BrowserView } = require('electron') function createWindow () { const win = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, contextIsolation: true } }) const view = new BrowserView({ webPreferences: { contextIsolation: true } }) win.setBrowserView(view) // viewを複数指定した場合は後勝ち view.setBounds({x: 300, y: 0, width: 400, height: 400}) view.webContents.loadURL('https://www.yahoo.co.jp/') // win.loadFile('index.html') } app.whenReady().then(createWindow) app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit() } }) app.on('activate', () => { if (BrowserWindow.getAllWindows().length === 0) { createWindow() } })
注意点
一つのウィンドウに複数のBrowserViewを設定することができません。後勝ちになってしますようなので複数指定は不可です。
ドキュメント
BrowserView | Electron
**Note** The BrowserView class is deprecated, and replaced by the new WebContentsView class.
サンプル
GitHub - takahashi-h5/electron-browserview01
Contribute to takahashi-h5/electron-browserview01 development by creating an account on GitHub.
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント