Откройте браузер в электронном

#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);
}