本文整理汇总了TypeScript中electron.app.setLoginItemSettings方法的典型用法代码示例。如果您正苦于以下问题:TypeScript app.setLoginItemSettings方法的具体用法?TypeScript app.setLoginItemSettings怎么用?TypeScript app.setLoginItemSettings使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类electron.app
的用法示例。
在下文中一共展示了app.setLoginItemSettings方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: it
it('correctly sets and unsets the LoginItem', function () {
expect(app.getLoginItemSettings().openAtLogin).to.equal(false)
app.setLoginItemSettings({ openAtLogin: true })
expect(app.getLoginItemSettings().openAtLogin).to.equal(true)
app.setLoginItemSettings({ openAtLogin: false })
expect(app.getLoginItemSettings().openAtLogin).to.equal(false)
})
示例2: checkForUpdates
app.on('ready', () => {
if (debugMode) {
Menu.setApplicationMenu(Menu.buildFromTemplate([{
label: 'Developer',
submenu: [{role: 'reload'}, {role: 'forcereload'}, {role: 'toggledevtools'}]
}]));
} else {
checkForUpdates();
// Check every six hours
setInterval(checkForUpdates, 6 * 60 * 60 * 1000);
}
// Set the app to launch at startup to connect automatically in case of a showdown while proxying.
if (isLinux) {
if (process.env.APPIMAGE) {
const outlineAutoLauncher = new autoLaunch({
name: 'OutlineClient',
path: process.env.APPIMAGE,
});
outlineAutoLauncher.isEnabled()
.then((isEnabled: boolean) => {
if (isEnabled) {
return;
}
outlineAutoLauncher.enable();
})
.catch((err: Error) => {
console.error(`failed to add autolaunch entry for Outline ${err.message}`);
});
}
} else {
app.setLoginItemSettings({openAtLogin: true, args: [Options.AUTOSTART]});
}
// TODO: --autostart is never set on Linux, what can we do?
if (process.argv.includes(Options.AUTOSTART)) {
connectionStore.load()
.then((connection) => {
createWindow(connection);
})
.catch((e) => {
// No connection at shutdown, or failure - either way, no need to start.
// TODO: Instead of quitting, how about creating the system tray icon?
console.log(`${Options.AUTOSTART} was passed but we were not connected at shutdown - exiting`);
app.quit();
});
} else {
createWindow();
}
});
示例3: createWindow
app.on('ready', () => {
// TODO: Run this periodically, e.g. every 4-6 hours.
autoUpdater.checkForUpdates();
if (debugMode) {
Menu.setApplicationMenu(Menu.buildFromTemplate([{
label: 'Developer',
submenu: [{role: 'reload'}, {role: 'forcereload'}, {role: 'toggledevtools'}]
}]));
}
// Set the app to launch at startup to reset the system proxy configuration
// in case of a showdown while proxying.
app.setLoginItemSettings({openAtLogin: true, args: [Options.AUTOSTART]});
if (process.argv.includes(Options.AUTOSTART)) {
app.quit(); // Quitting the app will reset the system proxy configuration before exiting.
} else {
createWindow();
}
});
示例4: afterEach
afterEach(() => {
app.setLoginItemSettings({ openAtLogin: false })
app.setLoginItemSettings({ openAtLogin: false, path: updateExe, args: processStartArgs })
})
示例5: updateMenu
//.........这里部分代码省略.........
{
label: 'Show Unread Badge',
type: 'checkbox',
checked: config.get('showUnreadBadge'),
click() {
config.set('showUnreadBadge', !config.get('showUnreadBadge'));
}
},
{
label: 'Hardware Acceleration',
type: 'checkbox',
checked: config.get('hardwareAcceleration'),
click() {
config.set('hardwareAcceleration', !config.get('hardwareAcceleration'));
showRestartDialog('Caprine needs to be restarted to change hardware acceleration.');
}
},
{
label: 'Always on Top',
type: 'checkbox',
accelerator: 'CommandOrControl+Shift+T',
checked: config.get('alwaysOnTop'),
click(menuItem, focusedWindow) {
config.set('alwaysOnTop', menuItem.checked);
focusedWindow.setAlwaysOnTop(menuItem.checked);
}
},
{
label: 'Launch at Login',
visible: is.macos || is.windows,
type: 'checkbox',
checked: app.getLoginItemSettings().openAtLogin,
click(menuItem) {
app.setLoginItemSettings({
openAtLogin: menuItem.checked,
openAsHidden: menuItem.checked
});
}
},
{
label: 'Auto Hide Menu Bar',
type: 'checkbox',
visible: !is.macos,
checked: config.get('autoHideMenuBar'),
click(menuItem, focusedWindow) {
config.set('autoHideMenuBar', menuItem.checked);
focusedWindow.setAutoHideMenuBar(menuItem.checked);
focusedWindow.setMenuBarVisibility(!menuItem.checked);
}
},
{
label: 'Flash Window on Message',
type: 'checkbox',
visible: !is.macos,
checked: config.get('flashWindowOnMessage'),
click(menuItem) {
config.set('flashWindowOnMessage', menuItem.checked);
}
},
{
label: 'Launch Minimized',
type: 'checkbox',
visible: !is.macos,
checked: config.get('launchMinimized'),
click() {
config.set('launchMinimized', !config.get('launchMinimized'));
示例6: updateOpenAtLoginState
async function updateOpenAtLoginState(
store: Store,
openAtLogin: boolean,
openAsHidden: boolean
) {
logger.debug(
`Updating login item settings, open=${openAtLogin}, hidden=${openAsHidden}`
);
const app = require("electron").app;
if (process.platform === "linux") {
// cf. https://standards.freedesktop.org/autostart-spec/autostart-spec-latest.html#startup
const configHome =
process.env.XDG_CONFIG_HOME ||
ospath.join(app.getPath("home"), ".config", "autostart");
const desktopFileName = `io.itch.${app.getName()}.desktop`;
const desktopFilePath = ospath.join(
"/usr/share/applications",
desktopFileName
);
const autostartFilePath = ospath.join(configHome, desktopFileName);
logger.debug(`Copying ${desktopFilePath} => ${autostartFilePath}`);
if (openAtLogin) {
try {
if (!(await exists(desktopFilePath))) {
store.dispatch(
actions.openAtLoginError({ cause: "no_desktop_file" })
);
return;
}
if (!(await exists(configHome))) {
await mkdir(configHome);
}
const desktopContents = await readFile(desktopFilePath, {
encoding: "utf8",
});
if (await exists(autostartFilePath)) {
await unlink(autostartFilePath);
}
await writeFile(autostartFilePath, desktopContents, {
encoding: "utf8",
});
} catch (err) {
logger.error(
`Error while symlinking ${autostartFilePath}: ${err.message}`
);
store.dispatch(
actions.openAtLoginError({ cause: "error", message: err.message })
);
return;
}
} else {
try {
await unlink(autostartFilePath);
} catch (err) {
if (err.code === "ENOENT") {
// not even there, good!
} else {
logger.error(
`Error while unlinking ${autostartFilePath}: ${err.message}`
);
return;
}
}
store.dispatch(actions.openAtLoginError(null));
}
} else {
// macOS, Windows
app.setLoginItemSettings({
openAtLogin: openAtLogin,
openAsHidden: openAsHidden,
});
}
}