2013-09-09 07:35:57 +00:00
|
|
|
|
# app
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
The `app` module is responsible for controlling the application's lifecycle.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
The following example shows how to quit the application when the last window is closed:
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
|
var app = require('app');
|
|
|
|
|
app.on('window-all-closed', function() {
|
|
|
|
|
app.quit();
|
|
|
|
|
});
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Event: will-finish-launching
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
Emitted when the application has finished basic startup. On Windows and Linux,
|
|
|
|
|
the `will-finish-launching` event is the same as the `ready` event; on OS X,
|
|
|
|
|
this event represents the `applicationWillFinishLaunching` notification of `NSApplication`.
|
|
|
|
|
You would usually set up listeners for the `open-file` and `open-url` events here,
|
|
|
|
|
and start the crash reporter and auto updater.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
In most cases, you should just do everything in the `ready` event handler.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
2013-12-27 03:08:26 +00:00
|
|
|
|
## Event: ready
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
Emitted when Electron has finsished initialization.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
|
|
|
|
## Event: window-all-closed
|
|
|
|
|
|
|
|
|
|
Emitted when all windows have been closed.
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
This event is only emitted when the application is not going to quit. If the
|
2015-04-16 03:31:12 +00:00
|
|
|
|
user pressed `Cmd + Q`, or the developer called `app.quit()`, Electron would
|
2015-07-18 14:40:01 +00:00
|
|
|
|
first try to close all the windows and then emit the `will-quit` event, and in
|
|
|
|
|
this case the `window-all-closed` event would not be emitted.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
2015-02-26 03:33:42 +00:00
|
|
|
|
## Event: before-quit
|
|
|
|
|
|
|
|
|
|
* `event` Event
|
|
|
|
|
|
|
|
|
|
Emitted before the application starts closing its windows.
|
|
|
|
|
Calling `event.preventDefault()` will prevent the default behaviour, which is
|
|
|
|
|
terminating the application.
|
|
|
|
|
|
2013-08-14 22:43:35 +00:00
|
|
|
|
## Event: will-quit
|
|
|
|
|
|
|
|
|
|
* `event` Event
|
|
|
|
|
|
2013-08-29 14:37:51 +00:00
|
|
|
|
Emitted when all windows have been closed and the application will quit.
|
|
|
|
|
Calling `event.preventDefault()` will prevent the default behaviour, which is
|
|
|
|
|
terminating the application.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
See the description of the `window-all-closed` event for the differences between the `will-quit`
|
|
|
|
|
and `window-all-closed` events.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
2014-09-25 13:47:54 +00:00
|
|
|
|
## Event: quit
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
Emitted when the application is quitting.
|
2014-09-25 13:47:54 +00:00
|
|
|
|
|
2013-08-14 22:43:35 +00:00
|
|
|
|
## Event: open-file
|
|
|
|
|
|
|
|
|
|
* `event` Event
|
|
|
|
|
* `path` String
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
Emitted when the user wants to open a file with the application. The `open-file` event
|
|
|
|
|
is usually emitted when the application is already open and the OS wants to reuse the
|
|
|
|
|
application to open the file. `open-file` is also emitted when a file is dropped onto the
|
|
|
|
|
dock and the application is not yet running. Make sure to listen for the `open-file`
|
|
|
|
|
event very early in your application startup to handle this case (even before the
|
2015-06-16 02:08:32 +00:00
|
|
|
|
`ready` event is emitted).
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
|
|
|
|
You should call `event.preventDefault()` if you want to handle this event.
|
|
|
|
|
|
|
|
|
|
## Event: open-url
|
|
|
|
|
|
|
|
|
|
* `event` Event
|
|
|
|
|
* `url` String
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
Emitted when the user wants to open a URL with the application. The URL scheme
|
2013-08-29 14:37:51 +00:00
|
|
|
|
must be registered to be opened by your application.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
|
|
|
|
You should call `event.preventDefault()` if you want to handle this event.
|
|
|
|
|
|
2014-03-05 10:09:44 +00:00
|
|
|
|
## Event: activate-with-no-open-windows
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
Emitted when the application is activated while there are no open windows, which
|
|
|
|
|
usually happens when the user has closed all of the application's windows and then
|
|
|
|
|
clicks on the application's dock icon.
|
2014-03-05 10:09:44 +00:00
|
|
|
|
|
2015-06-18 05:59:08 +00:00
|
|
|
|
## Event: browser-window-blur
|
|
|
|
|
|
|
|
|
|
* `event` Event
|
|
|
|
|
* `window` BrowserWindow
|
|
|
|
|
|
|
|
|
|
Emitted when a [browserWindow](browser-window.md) gets blurred.
|
|
|
|
|
|
|
|
|
|
## Event: browser-window-focus
|
|
|
|
|
|
|
|
|
|
* `event` Event
|
|
|
|
|
* `window` BrowserWindow
|
|
|
|
|
|
|
|
|
|
Emitted when a [browserWindow](browser-window.md) gets focused.
|
|
|
|
|
|
2015-06-11 15:22:07 +00:00
|
|
|
|
### Event: 'select-certificate'
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
Emitted when a client certificate is requested.
|
2015-06-11 15:22:07 +00:00
|
|
|
|
|
|
|
|
|
* `event` Event
|
|
|
|
|
* `webContents` [WebContents](browser-window.md#class-webcontents)
|
|
|
|
|
* `url` String
|
|
|
|
|
* `certificateList` [Objects]
|
|
|
|
|
* `data` PEM encoded data
|
|
|
|
|
* `issuerName` Issuer's Common Name
|
|
|
|
|
* `callback` Function
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
app.on('select-certificate', function(event, host, url, list, callback) {
|
|
|
|
|
event.preventDefault();
|
|
|
|
|
callback(list[0]);
|
|
|
|
|
})
|
|
|
|
|
```
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
`url` corresponds to the navigation entry requesting the client certificate.
|
2015-06-11 15:22:07 +00:00
|
|
|
|
`callback` needs to be called with an entry filtered from the list.
|
2015-07-18 14:40:01 +00:00
|
|
|
|
`event.preventDefault()` prevents the application from using the first certificate
|
|
|
|
|
from the store.
|
2015-06-11 15:22:07 +00:00
|
|
|
|
|
2015-06-25 14:01:57 +00:00
|
|
|
|
### Event: 'gpu-process-crashed'
|
2015-06-25 13:53:22 +00:00
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
Emitted when the gpu process crashes.
|
2015-06-25 13:53:22 +00:00
|
|
|
|
|
2013-08-14 22:43:35 +00:00
|
|
|
|
## app.quit()
|
|
|
|
|
|
2015-02-26 03:33:42 +00:00
|
|
|
|
Try to close all windows. The `before-quit` event will first be emitted. If all
|
|
|
|
|
windows are successfully closed, the `will-quit` event will be emitted and by
|
2015-07-18 14:40:01 +00:00
|
|
|
|
default the application will terminate.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
This method guarantees that all `beforeunload` and `unload` event handlers are correctly
|
2013-08-29 14:37:51 +00:00
|
|
|
|
executed. It is possible that a window cancels the quitting by returning
|
2015-07-18 14:40:01 +00:00
|
|
|
|
`false` in the `beforeunload` event handler.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
2015-07-06 09:35:35 +00:00
|
|
|
|
## app.getAppPath()
|
|
|
|
|
|
|
|
|
|
Returns the current application directory.
|
|
|
|
|
|
2015-01-19 02:25:31 +00:00
|
|
|
|
## app.getPath(name)
|
2014-08-15 15:29:36 +00:00
|
|
|
|
|
2015-01-19 02:25:31 +00:00
|
|
|
|
* `name` String
|
2014-08-15 15:29:36 +00:00
|
|
|
|
|
2015-01-19 02:25:31 +00:00
|
|
|
|
Retrieves a path to a special directory or file associated with `name`. On
|
2015-07-18 14:40:01 +00:00
|
|
|
|
failure an `Error` is thrown.
|
2015-01-19 02:25:31 +00:00
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
You can request the following paths by the name:
|
2015-01-19 02:25:31 +00:00
|
|
|
|
|
|
|
|
|
* `home`: User's home directory
|
2015-07-18 14:40:01 +00:00
|
|
|
|
* `appData`: Per-user application data directory, which by default points to:
|
2015-01-19 02:25:31 +00:00
|
|
|
|
* `%APPDATA%` on Windows
|
2015-01-19 05:10:42 +00:00
|
|
|
|
* `$XDG_CONFIG_HOME` or `~/.config` on Linux
|
2015-01-19 02:25:31 +00:00
|
|
|
|
* `~/Library/Application Support` on OS X
|
2015-07-18 14:40:01 +00:00
|
|
|
|
* `userData`: The directory for storing your app's configuration files, which by
|
2015-01-19 05:31:09 +00:00
|
|
|
|
default it is the `appData` directory appended with your app's name
|
2015-07-18 14:40:01 +00:00
|
|
|
|
* `cache`: Per-user application cache directory, which by default points to:
|
|
|
|
|
* `%APPDATA%` on Windows (which doesn't have a universal cache location)
|
2015-01-19 05:10:42 +00:00
|
|
|
|
* `$XDG_CACHE_HOME` or `~/.cache` on Linux
|
2015-01-19 05:09:42 +00:00
|
|
|
|
* `~/Library/Caches` on OS X
|
|
|
|
|
* `userCache`: The directory for placing your app's caches, by default it is the
|
2015-01-19 05:31:09 +00:00
|
|
|
|
`cache` directory appended with your app's name
|
|
|
|
|
* `temp`: Temporary directory
|
|
|
|
|
* `userDesktop`: The current user's Desktop directory
|
|
|
|
|
* `exe`: The current executable file
|
|
|
|
|
* `module`: The `libchromiumcontent` library
|
2015-01-19 02:25:31 +00:00
|
|
|
|
|
|
|
|
|
## app.setPath(name, path)
|
|
|
|
|
|
|
|
|
|
* `name` String
|
|
|
|
|
* `path` String
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
Overrides the `path` to a special directory or file associated with `name`. If
|
2015-01-19 02:25:31 +00:00
|
|
|
|
the path specifies a directory that does not exist, the directory will be
|
2015-07-18 14:40:01 +00:00
|
|
|
|
created by this method. On failure an `Error` is thrown.
|
2015-01-19 02:25:31 +00:00
|
|
|
|
|
|
|
|
|
You can only override paths of `name`s defined in `app.getPath`.
|
2014-08-15 15:29:36 +00:00
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
By default, web pages' cookies and caches will be stored under the `userData`
|
|
|
|
|
directory. If you want to change this location, you have to override the
|
|
|
|
|
`userData` path before the `ready` event of the `app` module is emitted.
|
2015-01-19 04:39:38 +00:00
|
|
|
|
|
2013-08-14 22:43:35 +00:00
|
|
|
|
## app.getVersion()
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
Returns the version of the loaded application. If no version is found in the
|
|
|
|
|
application's `package.json` file, the version of the current bundle or executable is
|
|
|
|
|
returned.
|
2013-12-05 03:02:09 +00:00
|
|
|
|
|
|
|
|
|
## app.getName()
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
Returns the current application's name, which is the name in the application's
|
|
|
|
|
`package.json` file.
|
2013-12-05 03:02:09 +00:00
|
|
|
|
|
2013-12-05 03:46:36 +00:00
|
|
|
|
Usually the `name` field of `package.json` is a short lowercased name, according
|
2015-07-18 14:40:01 +00:00
|
|
|
|
to the npm modules spec. You should usually also specify a `productName`
|
|
|
|
|
field, which is your application's full capitalized name, and which will be
|
2015-04-16 03:31:12 +00:00
|
|
|
|
preferred over `name` by Electron.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
2014-08-19 13:26:45 +00:00
|
|
|
|
## app.resolveProxy(url, callback)
|
|
|
|
|
|
|
|
|
|
* `url` URL
|
|
|
|
|
* `callback` Function
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
Resolves the proxy information for `url`. The `callback` will be called with
|
|
|
|
|
`callback(proxy)` when the request is performed.
|
2014-08-19 13:26:45 +00:00
|
|
|
|
|
2014-11-17 11:02:37 +00:00
|
|
|
|
## app.addRecentDocument(path)
|
|
|
|
|
|
|
|
|
|
* `path` String
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
Adds `path` to the recent documents list.
|
2014-11-17 11:02:37 +00:00
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
This list is managed by the OS. On Windows you can visit the list from the task
|
|
|
|
|
bar, and on OS X you can visit it from dock menu.
|
2014-11-17 11:02:37 +00:00
|
|
|
|
|
|
|
|
|
## app.clearRecentDocuments()
|
|
|
|
|
|
|
|
|
|
Clears the recent documents list.
|
|
|
|
|
|
2014-11-17 11:50:34 +00:00
|
|
|
|
## app.setUserTasks(tasks)
|
|
|
|
|
|
|
|
|
|
* `tasks` Array - Array of `Task` objects
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
Adds `tasks` to the [Tasks][tasks] category of the JumpList on Windows.
|
2014-11-17 11:50:34 +00:00
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
`tasks` is an array of `Task` objects in following format:
|
2014-11-17 11:50:34 +00:00
|
|
|
|
|
|
|
|
|
* `Task` Object
|
|
|
|
|
* `program` String - Path of the program to execute, usually you should
|
2015-07-18 14:40:01 +00:00
|
|
|
|
specify `process.execPath` which opens the current program
|
|
|
|
|
* `arguments` String - The command line arguments when `program` is
|
2014-11-17 11:50:34 +00:00
|
|
|
|
executed
|
|
|
|
|
* `title` String - The string to be displayed in a JumpList
|
|
|
|
|
* `description` String - Description of this task
|
|
|
|
|
* `iconPath` String - The absolute path to an icon to be displayed in a
|
2015-07-18 14:40:01 +00:00
|
|
|
|
JumpList, which can be an arbitrary resource file that contains an icon. You can
|
|
|
|
|
usually specify `process.execPath` to show the icon of the program
|
2014-11-17 11:50:34 +00:00
|
|
|
|
* `iconIndex` Integer - The icon index in the icon file. If an icon file
|
|
|
|
|
consists of two or more icons, set this value to identify the icon. If an
|
|
|
|
|
icon file consists of one icon, this value is 0
|
|
|
|
|
|
|
|
|
|
**Note:** This API is only available on Windows.
|
|
|
|
|
|
2013-08-14 22:43:35 +00:00
|
|
|
|
## app.commandLine.appendSwitch(switch, [value])
|
|
|
|
|
|
|
|
|
|
Append a switch [with optional value] to Chromium's command line.
|
|
|
|
|
|
2013-10-05 05:03:08 +00:00
|
|
|
|
**Note:** This will not affect `process.argv`, and is mainly used by developers
|
|
|
|
|
to control some low-level Chromium behaviors.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
|
|
|
|
## app.commandLine.appendArgument(value)
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
Append an argument to Chromium's command line. The argument will be quoted correctly.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
|
|
|
|
**Note:** This will not affect `process.argv`.
|
|
|
|
|
|
|
|
|
|
## app.dock.bounce([type])
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
* `type` String - Can be `critical` or `informational`. The default is
|
2015-03-30 08:13:11 +00:00
|
|
|
|
`informational`
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
2013-08-29 14:37:51 +00:00
|
|
|
|
When `critical` is passed, the dock icon will bounce until either the
|
|
|
|
|
application becomes active or the request is canceled.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
When `informational` is passed, the dock icon will bounce for one second. However,
|
|
|
|
|
the request remains active until either the application becomes active or
|
2013-08-29 14:37:51 +00:00
|
|
|
|
the request is canceled.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
An ID representing the request is returned.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
**Note:** This API is only available on OS X.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
|
|
|
|
## app.dock.cancelBounce(id)
|
|
|
|
|
|
|
|
|
|
* `id` Integer
|
|
|
|
|
|
|
|
|
|
Cancel the bounce of `id`.
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
**Note:** This API is only available on OS X.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
|
|
|
|
## app.dock.setBadge(text)
|
|
|
|
|
|
|
|
|
|
* `text` String
|
|
|
|
|
|
|
|
|
|
Sets the string to be displayed in the dock’s badging area.
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
**Note:** This API is only available on OS X.
|
2013-08-14 22:43:35 +00:00
|
|
|
|
|
|
|
|
|
## app.dock.getBadge()
|
|
|
|
|
|
|
|
|
|
Returns the badge string of the dock.
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
**Note:** This API is only available on OS X.
|
2014-06-25 03:55:33 +00:00
|
|
|
|
|
|
|
|
|
## app.dock.hide()
|
|
|
|
|
|
|
|
|
|
Hides the dock icon.
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
**Note:** This API is only available on OS X.
|
2014-06-25 03:55:33 +00:00
|
|
|
|
|
|
|
|
|
## app.dock.show()
|
|
|
|
|
|
|
|
|
|
Shows the dock icon.
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
**Note:** This API is only available on OS X.
|
2014-11-17 10:48:02 +00:00
|
|
|
|
|
|
|
|
|
## app.dock.setMenu(menu)
|
|
|
|
|
|
|
|
|
|
* `menu` Menu
|
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
Sets the application's [dock menu][dock-menu].
|
2014-11-17 10:48:02 +00:00
|
|
|
|
|
2015-07-18 14:40:01 +00:00
|
|
|
|
**Note:** This API is only available on OS X.
|
2014-11-17 10:48:02 +00:00
|
|
|
|
|
|
|
|
|
[dock-menu]:https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/customizing_docktile/concepts/dockconcepts.html#//apple_ref/doc/uid/TP30000986-CH2-TPXREF103
|
2014-11-17 11:50:34 +00:00
|
|
|
|
[tasks]:http://msdn.microsoft.com/en-us/library/windows/desktop/dd378460(v=vs.85).aspx#tasks
|