我把一个webapp放到ElectronJS框架中。在webapp(实际上是网页)中有一些链接target=_blank
。但是,当我单击该链接时,它将打开另一个Electron浏览器窗口。我希望链接能够在默认的Web浏览器中显示。
我能想到的是捕获这样的导航事件,然后将消息发送到主浏览器窗口,让它生成一个默认的浏览器实例来显示链接。
我认为这有点复杂。我正在寻求一种更简单的方法。
答案 0 :(得分:5)
您有正确的想法,您需要收听new-window
event并将网址转发到默认浏览器。您可以在主流程中实现它,如下所示:
import { shell } from 'electron'
mainWindow.webContents.on('new-window', (event, url) => {
// stop Electron from opening another BrowserWindow
event.preventDefault()
// open the url in the default system browser
shell.openExternal(url)
})
请注意,new-window
事件实际上提供了有关要打开的窗口(而不仅仅是URL)的一些其他信息,您可能需要考虑其中的一些信息以确定URL是否有用应该转发到默认浏览器。