commit
9c36b73df6
4 changed files with 112 additions and 0 deletions
@ -0,0 +1,6 @@ |
|||
# NPM renames .gitignore to .npmignore |
|||
# In order to prevent that, we remove the initial "." |
|||
# And the CLI then renames it |
|||
|
|||
app/ |
|||
node_modules/ |
@ -0,0 +1,86 @@ |
|||
const { app, BrowserWindow, Menu } = require('electron'); |
|||
const isDevMode = require('electron-is-dev'); |
|||
const { CapacitorSplashScreen, configCapacitor } = require('@capacitor/electron'); |
|||
|
|||
const path = require('path'); |
|||
|
|||
// Place holders for our windows so they don't get garbage collected.
|
|||
let mainWindow = null; |
|||
|
|||
// Placeholder for SplashScreen ref
|
|||
let splashScreen = null; |
|||
|
|||
//Change this if you do not wish to have a splash screen
|
|||
let useSplashScreen = true; |
|||
|
|||
// Create simple menu for easy devtools access, and for demo
|
|||
const menuTemplateDev = [ |
|||
{ |
|||
label: 'Options', |
|||
submenu: [ |
|||
{ |
|||
label: 'Open Dev Tools', |
|||
click() { |
|||
mainWindow.openDevTools(); |
|||
}, |
|||
}, |
|||
], |
|||
}, |
|||
]; |
|||
|
|||
async function createWindow () { |
|||
// Define our main window size
|
|||
mainWindow = new BrowserWindow({ |
|||
height: 800, |
|||
width: 1200, |
|||
show: false, |
|||
webPreferences: { |
|||
nodeIntegration: true, |
|||
preload: path.join(__dirname, 'node_modules', '@capacitor', 'electron', 'dist', 'electron-bridge.js') |
|||
} |
|||
}); |
|||
|
|||
configCapacitor(mainWindow); |
|||
|
|||
if (isDevMode) { |
|||
// Set our above template to the Menu Object if we are in development mode, dont want users having the devtools.
|
|||
Menu.setApplicationMenu(Menu.buildFromTemplate(menuTemplateDev)); |
|||
// If we are developers we might as well open the devtools by default.
|
|||
mainWindow.webContents.openDevTools(); |
|||
} |
|||
|
|||
if(useSplashScreen) { |
|||
splashScreen = new CapacitorSplashScreen(mainWindow); |
|||
splashScreen.init(); |
|||
} else { |
|||
mainWindow.loadURL(`file://${__dirname}/app/index.html`); |
|||
mainWindow.webContents.on('dom-ready', () => { |
|||
mainWindow.show(); |
|||
}); |
|||
} |
|||
|
|||
} |
|||
|
|||
// This method will be called when Electron has finished
|
|||
// initialization and is ready to create browser windows.
|
|||
// Some Electron APIs can only be used after this event occurs.
|
|||
app.on('ready', createWindow); |
|||
|
|||
// Quit when all windows are closed.
|
|||
app.on('window-all-closed', function () { |
|||
// On OS X it is common for applications and their menu bar
|
|||
// to stay active until the user quits explicitly with Cmd + Q
|
|||
if (process.platform !== 'darwin') { |
|||
app.quit(); |
|||
} |
|||
}); |
|||
|
|||
app.on('activate', function () { |
|||
// On OS X it's common to re-create a window in the app when the
|
|||
// dock icon is clicked and there are no other windows open.
|
|||
if (mainWindow === null) { |
|||
createWindow(); |
|||
} |
|||
}); |
|||
|
|||
// Define any IPC or other custom functionality below here
|
@ -0,0 +1,20 @@ |
|||
{ |
|||
"name": "matrix-chat", |
|||
"version": "0.1.0", |
|||
"description": "a simple matrix webapp for mobile and desktop", |
|||
"main": "index.js", |
|||
"scripts": { |
|||
"electron:start": "electron ./" |
|||
}, |
|||
"dependencies": { |
|||
"@capacitor/electron": "^2.4.7", |
|||
"electron-is-dev": "^1.1.0" |
|||
}, |
|||
"devDependencies": { |
|||
"electron": "^8.0.0" |
|||
}, |
|||
"keywords": [ |
|||
"capacitor", |
|||
"electron" |
|||
] |
|||
} |
After Width: | Height: | Size: 5.3 KiB |
Loading…
Reference in new issue