#reactjs #electron
Вопрос:
В настоящее время, когда я нажимаю на ссылку в компоненте React, она открывает URL-адрес внутри приложения Electron, который мне не нужен. Я попытался использовать used target _blank для открытия браузера, но это не сработало. Как открыть браузер из электронного приложения, когда я нажимаю на ссылку?
Вот что я сделал:
Из компонента React
<div className="form-group">
<label htmlFor="uname1">Open Google from <a href="https://www.google.com" target="_blank">here</a>)</label>
</div>
В main.js в электроне
const {app, BrowserWindow,Menu, shell} = require('electron')
const isDev = require('electron-is-dev')
process.env.NODE_ENV = "development"
const isMac = process.platform === "darwin" ? true : false
let mainWindow
function createMainWindow (){
mainWindow = new BrowserWindow({
width:1024,
height:768,
show: false,
backgroundColor:"#263238"
})
mainWindow.loadURL(isDev ? 'http://localhost:3000' : `file://${path.join(__dirname, '../build/index.html')}`)
mainWindow.once('ready-to-show', () => {
mainWindow.show();
mainWindow.focus();
});
}
document.body.addEventListener('click', event => {
if (event.target.tagName.toLowerCase() === 'a' amp;amp; event.target.protocol != 'file:') {
event.preventDefault();
shell.openExternal(event.target.href);
}
});
Заранее большое спасибо и высоко ценю любую помощь. Еще раз спасибо
Ответ №1:
Добавьте этого слушателя:
mainWindow.webContents.on('new-window', function(event, url){
event.preventDefault();
electron.shell.openExternal(url);
}