Mac: Fix signal link handling when app is not open
Co-authored-by: ayumi-signal <143036029+ayumi-signal@users.noreply.github.com>
This commit is contained in:
parent
2633776aaa
commit
72a14ba9ac
1 changed files with 17 additions and 1 deletions
18
app/main.ts
18
app/main.ts
|
@ -179,6 +179,8 @@ nativeThemeNotifier.initialize();
|
||||||
|
|
||||||
let appStartInitialSpellcheckSetting = true;
|
let appStartInitialSpellcheckSetting = true;
|
||||||
|
|
||||||
|
let macInitialOpenUrlRoute: ParsedSignalRoute | undefined;
|
||||||
|
|
||||||
const cliParser = createParser({
|
const cliParser = createParser({
|
||||||
allowUnknown: true,
|
allowUnknown: true,
|
||||||
options: [
|
options: [
|
||||||
|
@ -281,10 +283,19 @@ if (!process.mas) {
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// This event is received in macOS packaged builds.
|
||||||
app.on('open-url', (event, incomingHref) => {
|
app.on('open-url', (event, incomingHref) => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
const route = parseSignalRoute(incomingHref);
|
const route = parseSignalRoute(incomingHref);
|
||||||
|
|
||||||
if (route != null) {
|
if (route != null) {
|
||||||
|
// When the app isn't open and you click a signal link to open the app, then
|
||||||
|
// this event will emit before mainWindow is ready. We save the value for later.
|
||||||
|
if (mainWindow == null || !mainWindow.webContents) {
|
||||||
|
macInitialOpenUrlRoute = route;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
handleSignalRoute(route);
|
handleSignalRoute(route);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -1083,12 +1094,17 @@ async function readyForUpdates() {
|
||||||
|
|
||||||
isReadyForUpdates = true;
|
isReadyForUpdates = true;
|
||||||
|
|
||||||
// First, install requested sticker pack
|
// First, handle requested signal URLs
|
||||||
const incomingHref = maybeGetIncomingSignalRoute(process.argv);
|
const incomingHref = maybeGetIncomingSignalRoute(process.argv);
|
||||||
if (incomingHref) {
|
if (incomingHref) {
|
||||||
handleSignalRoute(incomingHref);
|
handleSignalRoute(incomingHref);
|
||||||
|
} else if (macInitialOpenUrlRoute) {
|
||||||
|
handleSignalRoute(macInitialOpenUrlRoute);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Discard value even if we don't handle a saved URL.
|
||||||
|
macInitialOpenUrlRoute = undefined;
|
||||||
|
|
||||||
// Second, start checking for app updates
|
// Second, start checking for app updates
|
||||||
try {
|
try {
|
||||||
strictAssert(
|
strictAssert(
|
||||||
|
|
Loading…
Add table
Reference in a new issue