Ensure opening a link in the Electron app will open an external browser

This commit is contained in:
Florian Rival
2018-04-13 16:38:34 +02:00
parent b9035efc9e
commit f70c565e7d

View File

@@ -83,9 +83,6 @@ app.on('ready', function() {
if (isDev) { if (isDev) {
// Development (server hosted by npm run start) // Development (server hosted by npm run start)
mainWindow.loadURL('http://localhost:3000'); mainWindow.loadURL('http://localhost:3000');
// Define an entry in your /etc/host and use it instead of localhost
// to work with Auth0 authentification during development.
// mainWindow.loadURL('http://gdevelop.local:3000');
mainWindow.openDevTools(); mainWindow.openDevTools();
} else { } else {
// Production (with npm run build) // Production (with npm run build)
@@ -95,7 +92,6 @@ app.on('ready', function() {
Menu.setApplicationMenu(buildMainMenuFor(mainWindow)); Menu.setApplicationMenu(buildMainMenuFor(mainWindow));
// Emitted when the window is closed.
mainWindow.on('closed', function() { mainWindow.on('closed', function() {
// Dereference the window object, usually you would store windows // Dereference the window object, usually you would store windows
// in an array if your app supports multi windows, this is the time // in an array if your app supports multi windows, this is the time
@@ -104,6 +100,14 @@ app.on('ready', function() {
stopServer(() => {}); stopServer(() => {});
}); });
//Prevent any navigation inside the main window.
mainWindow.webContents.on('will-navigate', (e, url) => {
if (url !== mainWindow.webContents.getURL()) {
e.preventDefault();
electron.shell.openExternal(url);
}
});
ipcMain.on('s3-folder-upload', (event, localDir) => { ipcMain.on('s3-folder-upload', (event, localDir) => {
log.info('Received event s3-upload with localDir=', localDir); log.info('Received event s3-upload with localDir=', localDir);
@@ -135,25 +139,20 @@ app.on('ready', function() {
ipcMain.on('serve-folder', (event, options) => { ipcMain.on('serve-folder', (event, options) => {
log.info('Received event to server folder with options=', options); log.info('Received event to server folder with options=', options);
serveFolder( serveFolder(options, (err, serverParams) => {
options, event.sender.send('serve-folder-done', err, serverParams);
(err, serverParams) => { });
event.sender.send('serve-folder-done', err, serverParams);
}
);
}); });
ipcMain.on('stop-server', (event) => { ipcMain.on('stop-server', event => {
log.info('Received event to stop server'); log.info('Received event to stop server');
stopServer( stopServer(err => {
(err) => { event.sender.send('stop-server-done', err);
event.sender.send('stop-server-done', err); });
}
);
}); });
ipcMain.on('get-local-network-ips', (event) => { ipcMain.on('get-local-network-ips', event => {
event.sender.send('local-network-ips', getLocalNetworkIps()); event.sender.send('local-network-ips', getLocalNetworkIps());
}); });