electron#App TypeScript Examples
The following examples show how to use
electron#App.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: utilities.ts From Creators.TF-Community-Launcher with MIT License | 7 votes |
static GetNewLoadingPopup(title: string, mainWindow: any, onCanceled: () => void): any {
const progressBar = new ProgressBar({
text: title,
detail: "...",
browserWindow: {
webPreferences: {
nodeIntegration: true
},
parent: mainWindow,
modal: true,
title: title,
backgroundColor: "#2b2826",
closable: true
},
style: {
text: loadingTextStyle,
detail: loadingTextStyle,
value: loadingTextStyle
}
}, app);
progressBar.on("aborted", onCanceled);
return progressBar;
}
Example #2
Source File: index.ts From 3Speak-app with GNU General Public License v3.0 | 6 votes |
async function startup(): Promise<void> {
const updater = new AutoUpdater()
void updater.run()
try {
new IpcAdapter(core).start()
await core.start()
} catch (ex) {
console.error(ex)
app.quit()
}
}
Example #3
Source File: preferences.ts From WowUp with GNU General Public License v3.0 | 6 votes |
export function initializeDefaultPreferences() {
const isBetaBuild = app.getVersion().toLowerCase().indexOf("beta") != -1;
const defaultReleaseChannel = isBetaBuild ? WowUpReleaseChannelType.Beta : WowUpReleaseChannelType.Stable;
setDefaultPreference(ENABLE_SYSTEM_NOTIFICATIONS_PREFERENCE_KEY, true);
setDefaultPreference(COLLAPSE_TO_TRAY_PREFERENCE_KEY, true);
setDefaultPreference(USE_HARDWARE_ACCELERATION_PREFERENCE_KEY, true);
setDefaultPreference(CURRENT_THEME_KEY, DEFAULT_THEME);
setDefaultPreference(WOWUP_RELEASE_CHANNEL_PREFERENCE_KEY, defaultReleaseChannel);
setDefaultPreference(USE_SYMLINK_MODE_PREFERENCE_KEY, false);
setDefaultPreference(ENABLE_APP_BADGE_KEY, true);
setDefaultPreference(TRUSTED_DOMAINS_KEY, DEFAULT_TRUSTED_DOMAINS);
setDefaultPreference(ACCT_PUSH_ENABLED_KEY, false);
}
Example #4
Source File: background.ts From cashcash-desktop with MIT License | 6 votes |
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.on('ready', async () => {
try {
await installExtension(VUEJS_DEVTOOLS);
} catch (e) {
// tslint:disable-next-line:no-console
console.error('Vue Devtools failed to install:', e.toString());
}
createWindow();
});
Example #5
Source File: main.dev.ts From Oratio with MIT License | 6 votes |
app.on('window-all-closed', () => {
// Respect the OSX convention of having the application in memory even
// after all windows have been closed
if (process.platform !== 'darwin') {
app.quit();
}
globalShortcut.unregisterAll();
server.close();
});
Example #6
Source File: rewind.events.ts From rewind with MIT License | 6 votes |
export function setupEventListeners(rewindElectronApp: RewindElectronApp) {
// BackendAPI
ipcMain.handle("getPath", (event, type) => backendPreloadAPI.getPath(type));
// Others
// Does not work
// for (const [key, handler] of Object.entries(frontendPreloadAPI)) {
// ipcMain.handle(key, (event, args) => handler(...args));
// }
const app = rewindElectronApp.application;
ipcMain.handle("selectDirectory", (event, defaultPath) => userSelectDirectory(defaultPath));
ipcMain.handle("selectFile", (event, defaultPath) => userSelectFile(defaultPath));
ipcMain.handle("getPlatform", () => process.platform);
ipcMain.handle("getAppVersion", () => app.getVersion());
ipcMain.handle("reboot", () => {
app.relaunch();
app.quit();
});
}
Example #7
Source File: test-electron.ts From FIDO2Client with MIT License | 6 votes |
app.whenReady().then(() => {
let win = new BrowserWindow({
webPreferences: {
nodeIntegration: false,
enableRemoteModule: false,
contextIsolation: false,
preload: PreloadPath,
},
});
win.loadURL('https://webauthn.cybersecvn.com').then(() => {
// win.webContents.openDevTools();
win.maximize();
});
let fido2 = new FIDO2Client();
ipcMain.handle('navigator.credentials.create', (event, options) => fido2.makeCredential(event.sender.getURL(), options));
ipcMain.handle('navigator.credentials.get', (event, options) => fido2.getAssertion(event.sender.getURL(), options));
});
Example #8
Source File: main.ts From rewind with MIT License | 6 votes |
// TODO: Squirrel events
(function main() {
console.log(`AppDataPath=${app.getPath("appData")}`);
const userDataPath = app.getPath("userData");
const settings = readRewindElectronSettings(userDataPath);
const isDev = isDevelopmentMode();
console.log("Starting MainWindow with settings ", JSON.stringify(settings), isDev);
const rewindElectronApp = new RewindElectronApp(app, settings, isDev);
rewindElectronApp.boot();
setupEventListeners(rewindElectronApp);
})();
Example #9
Source File: main.ts From awakened-poe-trade with MIT License | 6 votes |
app.on('ready', async () => {
logger.info('App is running', {
source: 'init',
version: app.getVersion(),
osName: os.type(),
osRelease: os.release(),
logLevel: logger.level
})
createFileProtocol()
setupConfigEvents()
createTray()
setupShowHide()
loadAndCacheGameCfg()
setTimeout(
async () => {
await createOverlayWindow()
setupShortcuts()
setupAltVisibility()
LogWatcher.start()
},
// fixes(linux): window is black instead of transparent
process.platform === 'linux' ? 1000 : 0
)
if (process.env.NODE_ENV === 'production') {
checkForUpdates()
}
})
Example #10
Source File: main.ts From animation-editor with MIT License | 6 votes |
app.on("ready", () => {
Menu.setApplicationMenu(electronMenu);
session.defaultSession.webRequest.onHeadersReceived((details, callback) => {
callback({
responseHeaders: {
...details.responseHeaders,
// DevTools don't work when unsafe-eval is present. Commenting this out until I figure out
// how to add a CSP without breaking DevTools or something else.
//
// "Content-Security-Policy": [
// "default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self';",
// ],
// See https://developer.chrome.com/blog/enabling-shared-array-buffer/
"Cross-Origin-Embedder-Policy": "require-corp",
"Cross-Origin-Opener-Policy": "same-origin",
},
});
});
createElectronWindow();
});
Example #11
Source File: logger.ts From awakened-poe-trade with MIT License | 6 votes |
logger = winston.createLogger({
level: config.get('logLevel'),
format: winston.format.json(),
defaultMeta: { source: 'etc' },
transports: [
new winston.transports.File({
filename: path.join(app.getPath('userData'), 'apt-data', 'logs.txt'),
options: { flags: 'w' },
format: winston.format.printf((info) => {
const { source, level, message, ...meta } = info
return `${level} [${source}]: ${message} ${JSON.stringify(meta)}`
})
})
]
})
Example #12
Source File: main.ts From DittoPlusPlus with MIT License | 6 votes |
// Quit when all windows are closed.
app.on('window-all-closed', () => {
// On OS X it is common for applications and their menu bar
// to stay active until the user quits explicitly with Cmd + Q
unRegisterKeyboardShortcuts();
if (process.platform !== 'darwin') {
isQuitting = true;
app.quit();
}
});
Example #13
Source File: index.ts From image-optimizer with MIT License | 6 votes |
function createWindow () {
const bounds = store.app.get('bounds')
mainWindow = new BrowserWindow({
width: 550,
height: 370,
...bounds,
titleBarStyle: 'hidden',
resizable: false,
backgroundColor: '#212123',
webPreferences: {
preload: path.resolve(__dirname, 'preload.js'),
nodeIntegration: true,
contextIsolation: true
}
})
if (isDev) {
const rendererPort = process.argv[2]
mainWindow.loadURL(`http://localhost:${rendererPort}`)
mainWindow.webContents.openDevTools({ mode: 'detach' })
} else {
mainWindow.loadFile(path.resolve(app.getAppPath(), 'src/renderer/index.html'))
}
mainWindow.on('close', () => {
store.app.set('bounds', mainWindow.getBounds())
})
return { mainWindow }
}
Example #14
Source File: background.ts From IYUU-GUI with GNU Affero General Public License v3.0 | 6 votes |
function initTray() {
tray = new Tray(path.join(__static, 'assets/iyuu.png'))
const contextMenu = Menu.buildFromTemplate([
{
label: '退出', click: () => {
app.quit()
}
}
])
tray.on('click', () => {
win && win.show();
})
// Call this again for Linux because we modified the context menu
tray.setContextMenu(contextMenu)
}
Example #15
Source File: main.ts From simulator with Apache License 2.0 | 6 votes |
/**
* Add event listeners...
*/
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit();
}
});
Example #16
Source File: main.dev.ts From ow-mod-manager with MIT License | 6 votes |
createWindow = async () => {
mainWindow = new BrowserWindow({
width: 1000,
height: 850,
minWidth: 750,
minHeight: 400,
webPreferences: {
nodeIntegration: !isProduction,
enableRemoteModule: true,
preload: isProduction
? path.join(__dirname, 'dist/renderer.prod.js')
: undefined,
},
});
mainWindow.loadURL(`file://${__dirname}/app.html`);
if (isProduction) {
mainWindow.setMenu(null);
}
mainWindow.webContents.on('did-finish-load', () => {
if (!mainWindow) {
throw new Error('"mainWindow" is not defined');
}
mainWindow.setTitle(`Outer Wilds Mod Manager ${app.getVersion()}`);
});
setUpProtocolMessage(process.argv);
checkForUpdates();
}
Example #17
Source File: background.ts From project_nodeSnap with GNU General Public License v3.0 | 6 votes |
// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.on("ready", async () => {
if (isDevelopment && !process.env.IS_TEST) {
/**
* Since this is Vue 3, we need to download the beta extention.
* You can download it on your browser (chromuim based) and set the path here
*/
/*await session.defaultSession.loadExtension(
"C:/Users/Moncef/AppData/Local/BraveSoftware/Brave-Browser/User Data/Default/Extensions/ljjemllljcmogpfapbkkighbhhppjdbg/6.0.0.3_0"
);*/
}
//myLogger.log("creating main window...");
createWindow();
});
Example #18
Source File: main.ts From simulator with Apache License 2.0 | 6 votes |
app
.whenReady()
.then(() => {
createWindow();
app.on('activate', () => {
if (mainWindow === null) createWindow();
});
})
.catch(console.log);
Example #19
Source File: main.dev.ts From amazon-chime-sdk-classroom-demo with Apache License 2.0 | 6 votes |
/**
* Add event listeners...
*/
app.on('window-all-closed', () => {
// Respect the OSX convention of having the application in memory even
// after all windows have been closed
if (process.platform !== 'darwin') {
app.quit();
}
});
Example #20
Source File: shell.ts From ngx-electronify with MIT License | 6 votes |
app.on('web-contents-created', (_, contents) => {
// Angular router is ignored on `will-navigate` event
contents.on('will-navigate', (event, url) => {
// allow hot reload to work properly
if (url !== appUrl) {
event.preventDefault();
}
});
contents.setWindowOpenHandler(({ url }) => {
// open all blank href links using the OS default browser
setImmediate(() => {
shell.openExternal(url);
});
return { action: 'deny' };
});
});
Example #21
Source File: app.ts From noteworthy with GNU Affero General Public License v3.0 | 6 votes |
// == Quitting ====================================== //
/**
* Perform all steps needed to shut down the application.
* @caution Actually shuts down! Doesn't ask about unsaved changes!)
*/
quit(){
// announce globally that we're actually quitting!
global.isQuitting = true;
// clean up
/** @todo (9/13/20) these are global services,
* is it actually appropriate to destroy them here?
*/
this.detach__beforeQuit();
this._workspaceService.closeWorkspace()
this._fsal.close();
app.quit();
}
Example #22
Source File: main.ts From SpaceEye with MIT License | 6 votes |
/**
* Configure whether the app should start on login.
*
* @param shouldStart - Whether the app should start on login
*/
async function configureStartOnLogin(shouldStart: boolean) {
// Handle differently if windows store build
if (process.windowsStore === true) {
let task
try {
task = await WindowsStoreAutoLaunch.getStartupTask('SpaceEyeStartup')
} catch (error) {
log.error('Failed to get start on login MS task:', error)
return
}
if (task !== undefined && task.state !== StartupTaskState.disabledByUser) {
if (task.state === StartupTaskState.disabled && shouldStart) {
task.requestEnableAsync((error, _) => {
if (error) {
log.error('Failed to enable start on login for MS build')
}
})
} else if (task.state === StartupTaskState.enabled && !shouldStart) {
task.disable()
}
} else {
log.warn('User has disabled start on login from task manager; unable to change')
}
return
}
const loginItemSettings = app.getLoginItemSettings()
// If not set to what it should be, update it
if (loginItemSettings.openAtLogin !== shouldStart) {
app.setLoginItemSettings({ openAtLogin: shouldStart })
}
}
Example #23
Source File: main.ts From Bridge with GNU General Public License v3.0 | 6 votes |
app.on('ready', () => {
// Load settings from file before the window is created
getSettingsHandler.initSettings().then(() => {
createBridgeWindow()
if (!isDevBuild) {
updateChecker.checkForUpdates()
}
})
})
Example #24
Source File: main.dev.ts From ExpressLRS-Configurator with GNU General Public License v3.0 | 6 votes |
app.on('ready', async () => {
// does not work in development and MacOS requires the application to be signed
if (process.env.NODE_ENV !== 'development' && !isMacOS) {
try {
await autoUpdater.checkForUpdates();
} catch (error) {
logger.error(error);
}
}
});
Example #25
Source File: window.ts From noteworthy with GNU Affero General Public License v3.0 | 6 votes |
makeWindow(id=this.name, options=this.options, stateOptions=this.stateOptions) {
stateOptions = _.merge({
file: `${id}.json`,
defaultWidth: 600,
defaultHeight: 600
}, stateOptions);
const state = windowStateKeeper(stateOptions),
dimensions = _.pick(state, ['x', 'y', 'width', 'height']);
/** @todo get rid of lodash */
options = _.merge(dimensions, {
frame: true, //!is.macos,
show: false,
title: "Noteworthy",
//titleBarStyle: 'hiddenInset',
webPreferences: {
webSecurity: true,
sandbox: true,
contextIsolation: true,
preload: path.join(app.getAppPath(), 'dist/preload/preload.js'),
},
icon: "assets/icon/noteworthy-icon-512.png"
}, options);
const win = new BrowserWindow(options);
state.manage(win);
return win;
}
Example #26
Source File: index.ts From bitcoin-s-ts with MIT License | 6 votes |
startFileLogging = (): void => {
// use a fixed path, to ensure log shows outside Electron dist
const logPath = `${pathRoot}/debug-${app.isPackaged ? 'prod' : 'dev' }.log`
const logFile = fs.createWriteStream(logPath, { flags: 'w' })
const logStdout = process.stdout
console.log = function(...args) {
// @ts-ignore
logFile.write(util.format.apply(null, args) + '\n')
// @ts-ignore
logStdout.write(util.format.apply(null, args) + '\n')
}
console.debug = console.log
console.error = console.log
console.log('logger running')
}
Example #27
Source File: main.dev.ts From ExpressLRS-Configurator with GNU General Public License v3.0 | 6 votes |
/**
* Add event listeners...
*/
app.on('window-all-closed', () => {
// Respect the OSX convention of having the application in memory even
// after all windows have been closed
if (process.platform !== 'darwin') {
localServer.stop();
app.quit();
}
});
Example #28
Source File: index.ts From bitcoin-s-ts with MIT License | 6 votes |
createWindow = (): void => {
// Create the browser window.
mainWindow = new BrowserWindow({
width: 1080,
height: 900,
icon: path.join(__dirname, 'assets/icon.png'), // Linux app icon
webPreferences: {
nodeIntegration: true,
// May want to use app.getAppPath() instead
// preload: path.join(__dirname, 'preload.js'), // use a preload script
// preload: MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY,
// allowRunningInsecureContent: true,
// webSecurity: false,
// sandbox: false,
}
});
// and load the index.html of the app.
// mainWindow.loadURL(MAIN_WINDOW_WEBPACK_ENTRY);
mainWindow.loadURL(`http://localhost:${uiPort}`)
// Open the DevTools for `npm run start`
if (!app.isPackaged) mainWindow.webContents.openDevTools()
mainWindow.on('close', function () {
console.debug('close')
clearLocalStorage()
})
mainWindow.on('closed', function () {
console.debug('closed')
mainWindow = null
})
// Open links in browser instead of new electron window
mainWindow.webContents.on('new-window', function(e: NewWindowWebContentsEvent, url: string) {
e.preventDefault()
shell.openExternal(url)
})
}
Example #29
Source File: main.ts From dbm with Apache License 2.0 | 6 votes |
function createWindow(): BrowserWindow {
win = new BrowserWindow({
center: true,
width: 800,
height: 550,
webPreferences: {
nodeIntegration: true,
allowRunningInsecureContent: isDevelopment,
contextIsolation: false,
enableRemoteModule: false,
// Fix Access-Control-Allow-Origin
webSecurity: false
}
});
createMenu(app);
createAbout(app);
// Maximize window
win.maximize();
const winURL = isDevelopment
? 'http://localhost:4200'
: `file://${path.join(__dirname, '/../renderer/index.html')}`;
if (isDevelopment) {
win.webContents.openDevTools();
}
win.loadURL(winURL).then(() => {
});
win.on('closed', (event) => {
win = null;
event.preventDefault();
});
if (isDevelopment) {
app.dock.setIcon(path.join(__dirname, '../shared/assets/icons/favicon.png'));
}
handlerUpdater(win);
return win;
}