Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 309a8ce
Showing
7 changed files
with
2,682 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
node_modules | ||
dist |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# electron-quick-start | ||
|
||
**Clone and run for a quick way to see Electron in action.** | ||
|
||
This is a minimal Electron application based on the [Quick Start Guide](https://electronjs.org/docs/tutorial/quick-start) within the Electron documentation. | ||
|
||
**Use this app along with the [Electron API Demos](https://electronjs.org/#get-started) app for API code examples to help you get started.** | ||
|
||
A basic Electron application needs just these files: | ||
|
||
- `package.json` - Points to the app's main file and lists its details and dependencies. | ||
- `main.js` - Starts the app and creates a browser window to render HTML. This is the app's **main process**. | ||
- `index.html` - A web page to render. This is the app's **renderer process**. | ||
|
||
You can learn more about each of these components within the [Quick Start Guide](https://electronjs.org/docs/tutorial/quick-start). | ||
|
||
## To Use | ||
|
||
To clone and run this repository you'll need [Git](https://git-scm.com) and [Node.js](https://nodejs.org/en/download/) (which comes with [npm](http://npmjs.com)) installed on your computer. From your command line: | ||
|
||
```bash | ||
# Clone this repository | ||
git clone https://github.com/electron/electron-quick-start | ||
# Go into the repository | ||
cd electron-quick-start | ||
# Install dependencies | ||
npm install | ||
# Run the app | ||
npm start | ||
``` | ||
|
||
Note: If you're using Linux Bash for Windows, [see this guide](https://www.howtogeek.com/261575/how-to-run-graphical-linux-desktop-applications-from-windows-10s-bash-shell/) or use `node` from the command prompt. | ||
|
||
## Resources for Learning Electron | ||
|
||
- [electronjs.org/docs](https://electronjs.org/docs) - all of Electron's documentation | ||
- [electronjs.org/community#boilerplates](https://electronjs.org/community#boilerplates) - sample starter apps created by the community | ||
- [electron/electron-quick-start](https://github.com/electron/electron-quick-start) - a very basic starter Electron app | ||
- [electron/simple-samples](https://github.com/electron/simple-samples) - small applications with ideas for taking them further | ||
- [electron/electron-api-demos](https://github.com/electron/electron-api-demos) - an Electron app that teaches you how to use Electron | ||
- [hokein/electron-sample-apps](https://github.com/hokein/electron-sample-apps) - small demo apps for the various Electron APIs | ||
|
||
## License | ||
|
||
[CC0 1.0 (Public Domain)](LICENSE.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
const {app, BrowserWindow, shell} = require('electron') | ||
const URL = require('url').URL | ||
const path = require('path') | ||
|
||
function createWindow () { | ||
const mainWindow = new BrowserWindow({ | ||
contextIsolation: true, | ||
nodeIntegration: false, | ||
preload: path.join(__dirname, 'preload.js') | ||
}) | ||
|
||
mainWindow.loadURL('https://app.revolt.chat') | ||
} | ||
|
||
app.whenReady().then(() => { | ||
createWindow() | ||
|
||
app.on('activate', function () { | ||
if (BrowserWindow.getAllWindows().length === 0) createWindow() | ||
}) | ||
}) | ||
|
||
app.on('window-all-closed', function () { | ||
if (process.platform !== 'darwin') app.quit() | ||
}) | ||
|
||
app.on('web-contents-created', (_, contents) => { | ||
contents.on('will-navigate', (event, navigationUrl) => { | ||
const parsedUrl = new URL(navigationUrl) | ||
|
||
if (parsedUrl.origin !== 'https://app.revolt.chat') { | ||
event.preventDefault() | ||
} | ||
}) | ||
|
||
contents.setWindowOpenHandler(({ url }) => { | ||
if (url.startsWith('http:') || url.startsWith('https:') || url.startsWith('mailto:')) { | ||
setImmediate(() => { | ||
shell.openExternal(url) | ||
}) | ||
} | ||
|
||
return { action: 'deny' } | ||
}) | ||
}) |
Oops, something went wrong.