Make deepliking work on windows

This commit is contained in:
David Meza
2017-10-09 16:33:02 -05:00
parent 40892e0430
commit 4aa33a127d

View File

@@ -154,7 +154,10 @@ if (app.makeSingleInstance((commandLine/*, workingDirectory*/) => {
// argv: An array of the second instances (command line / deep linked) arguments // argv: An array of the second instances (command line / deep linked) arguments
if (process.platform === 'win32') { if (process.platform === 'win32') {
// Keep only command line / deep linked arguments // Keep only command line / deep linked arguments
deeplinkingUrl = commandLine.slice(1); if (Array.isArray(commandLine.slice(1)) && commandLine.slice(1).length > 0) {
setDeeplinkingUrl(commandLine.slice(1)[0]);
mainWindow.webContents.send('protocol-deeplink', deeplinkingUrl);
}
} }
// Someone tried to run a second instance, we should focus our window. // Someone tried to run a second instance, we should focus our window.
@@ -327,12 +330,16 @@ ipcMain.on('download-url', (event, URL) => {
}); });
}); });
app.setAsDefaultProtocolClient('Mattermost'); app.setAsDefaultProtocolClient('mattermost');
function setDeeplinkingUrl(url) {
deeplinkingUrl = url.replace('mattermost', 'https');
}
// Protocol handler for osx // Protocol handler for osx
app.on('open-url', function(event, url) { app.on('open-url', (event, url) => {
event.preventDefault(); event.preventDefault();
deeplinkingUrl = url.replace('Mattermost', 'https'); setDeeplinkingUrl(url);
mainWindow.webContents.send('protocol-deeplink', deeplinkingUrl); mainWindow.webContents.send('protocol-deeplink', deeplinkingUrl);
}); });
@@ -351,7 +358,9 @@ app.on('ready', () => {
// Protocol handler for win32 // Protocol handler for win32
if (process.platform === 'win32') { if (process.platform === 'win32') {
// Keep only command line / deep linked arguments // Keep only command line / deep linked arguments
deeplinkingUrl = process.argv.slice(1); if (Array.isArray(process.argv.slice(1)) && process.argv.slice(1).length > 0) {
setDeeplinkingUrl(process.argv.slice(1)[0]);
}
} }
mainWindow = createMainWindow(config, { mainWindow = createMainWindow(config, {
@@ -359,6 +368,7 @@ app.on('ready', () => {
linuxAppIcon: path.join(assetsDir, 'appicon.png'), linuxAppIcon: path.join(assetsDir, 'appicon.png'),
deeplinkingUrl deeplinkingUrl
}); });
mainWindow.on('closed', () => { mainWindow.on('closed', () => {
// 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