Number one answer is not work for me,i solved the problem by the following step
- Add shell on
const {app, BrowserWindow} = require('electron')
const {app, BrowserWindow, shell} = require('electron')
- Set nativeWindowOpen is true
function createWindow () {// Create the browser window.const mainWindow = new BrowserWindow({width: 1350,height: 880,webPreferences: {nativeWindowOpen: true,preload: path.join(__dirname, 'preload.js')},icon: path.join(__dirname, './img/icon.icns')})
- Add the following listener code
mainWindow.webContents.on('will-navigate', function(e, reqUrl) {let getHost = url=>require('url').parse(url).host;let reqHost = getHost(reqUrl);let isExternal = reqHost && reqHost !== getHost(wc.getURL());if(isExternal) {e.preventDefault();shell.openExternal(reqUrl, {});}})
reference https://stackoverflow.com/a/42570770/7458156 by cuixiping
