和 `window-all-closed` 事件的区别。
### 事件: 'quit'
+返回:
+
+* `event` 事件
+* `exitCode` 整数
当应用程序正在退出时触发。
-### 事件: 'open-file'
+### 事件: 'open-file' _OS X_
返回:
请确认在应用启动的时候(甚至在 `ready` 事件被触发前)就对 `open-file` 事件进行监听,以处理这种情况。
如果你想处理这个事件,你应该调用 `event.preventDefault()` 。
-
-### 事件: 'open-url'
+在 Windows系统中, 你需要通过解析 process.argv 来获取文件路径。
+### 事件: 'open-url' _OS X_
返回:
当一个 [浏览器窗口](browser-window.md) 被创建的时候触发。
-### 事件: 'select-certificate'
-
-当一个客户端认证被请求的时候被触发。
+### 事件: 'certificate-error'
返回:
* `event` 事件
-* `webContents` [web组件](browser-window.md#class-webcontents)
+* `webContents` [web组件](web-contents.md)
* `url` 字符串
* `certificateList` 对象
* `data` PEM 编码数据
* `issuerName` 发行者的公有名称
* `callback` 函数
+Emitted when failed to verify the `certificate` for `url`, to trust the
+certificate you should prevent the default behavior with
+`event.preventDefault()` and call `callback(true)`.
+
```javascript
-app.on('select-certificate', function(event, host, url, list, callback) {
- event.preventDefault();
- callback(list[0]);
-})
+session.on('certificate-error', function(event, webContents, url, error, certificate, callback) {
+ if (url == "https://github.com") {
+ // Verification logic.
+ event.preventDefault();
+ callback(true);
+ } else {
+ callback(false);
+ }
+});
```
+### 事件: 'select-client-certificate'
+
+
+返回:
+
+* `event` 事件
+* `webContents` [web组件](web-contents.md)
+* `url` 字符串
+* `certificateList` 对象
+ * `data` PEM 编码数据
+ * `issuerName` 发行者的公有名称
+* `callback` 函数
+
+当一个客户端认证被请求的时候被触发。
+
The `url` corresponds to the navigation entry requesting the client certificate
and `callback` needs to be called with an entry filtered from the list.
Using `event.preventDefault()` prevents the application from using the first
certificate from the store.
+```javascript
+app.on('select-certificate', function(event, host, url, list, callback) {
+ event.preventDefault();
+ callback(list[0]);
+})
+```
+### Event: 'login'
+
+Returns:
+
+* `event` Event
+* `webContents` [Web组件](web-contents.md)
+* `request` Object
+ * `method` String
+ * `url` URL
+ * `referrer` URL
+* `authInfo` Object
+ * `isProxy` Boolean
+ * `scheme` String
+ * `host` String
+ * `port` Integer
+ * `realm` String
+* `callback` Function
+
+当 `webContents` 要做验证时被触发。
+
+The default behavior is to cancel all authentications, to override this you
+should prevent the default behavior with `event.preventDefault()` and call
+`callback(username, password)` with the credentials.
+```javascript
+app.on('login', function(event, webContents, request, authInfo, callback) {
+ event.preventDefault();
+ callback('username', 'secret');
+})
+```
### 事件: 'gpu-process-crashed'
当GPU进程崩溃时触发。
这个方法保证了所有的 `beforeunload` 和 `unload` 事件处理器被正确执行。会存在一个窗口被 `beforeunload` 事件处理器返回 `false` 取消退出的可能性。
+### `app.hide()` _OS X_
+
+隐藏所有的应用窗口,不是最小化.
+
+### `app.show()` _OS X_
+
+隐藏后重新显示所有的窗口,不会自动选中他们。
+
+### `app.exit(exitCode)`
+
+* `exitCode` 整数
+
+带着`exitCode`退出应用.
+
+所有的窗口会被立刻关闭,不会询问用户。`before-quit` 和 `will-quit` 这2个事件不会被触发
+
+
### `app.getAppPath()`
返回当前应用所在的文件路径。
* `$XDG_CONFIG_HOME` or `~/.config` Linux 中
* `~/Library/Application Support` OS X 中
* `userData` 储存你应用程序设置文件的文件夹,默认是 `appData` 文件夹附加应用的名称。
-* `cache` 所有用户应用程序缓存的文件夹,默认对应:
- * `%APPDATA%` Windows 中 (没有一个通用的缓存位置)
- * `$XDG_CACHE_HOME` 或 `~/.cache` Linux 中
- * `~/Library/Caches` OS X 中
-* `userCache` 用于存放应用程序缓存的文件夹,默认是 `cache` 文件夹附加应用的名称。
* `temp` 临时文件夹。
-* `userDesktop` 当前用户的桌面文件夹。
-* `exe` 当前的可执行文件。
-* `module` `libchromiumcontent` 库。
+* `exe` 当前的可执行文件
+* `module` `libchromiumcontent` 库.
+* `desktop` 当前用户的桌面文件夹。
+* `documents` "我的文件夹"的路径.
+* `downloads` 用户下载目录的路径.
+* `music` 用户音乐目录的路径.
+* `pictures` 用户图片目录的路径.
+* `videos` 用户视频目录的路径.
### `app.setPath(name, path)`
如果这个路径指向的文件夹不存在,这个文件夹将会被这个方法创建。
如果错误则抛出 `Error` 。
-你只可以指向 `app.getPath` 中定义过 `name` 的路径。You can only override paths of a `name` defined in `app.getPath`.
+你只可以指向 `app.getPath` 中定义过 `name` 的路径。
默认情况下,网页的 cookie 和缓存都会储存在 `userData` 文件夹。
如果你想要改变这个位置,你需要在 `app` 模块中的 `ready` 事件被触发之前重写 `userData` 的路径。
### `app.getLocale()`
-返回当前应用程序的位置。
-
-### `app.resolveProxy(url, callback)`
+返回当前应用程序的语言种类。
-* `url` URL
-* `callback` 函数
-为 `url` 解析代理信息。 `callback` 在请求被执行之后将会被 `callback(proxy)` 调用。
-### `app.addRecentDocument(path)`
+### `app.addRecentDocument(path)` _OS X_ _Windows_
* `path` 字符串
这个列表由操作系统进行管理。在 Windows 中您可以通过任务条进行访问,在 OS X 中你可以通过dock 菜单进行访问。
-### `app.clearRecentDocuments()`
+### `app.clearRecentDocuments()` _OS X_ _Windows_
清除最近访问的文档列表。
* `iconPath` 字符串 - JumpList 中显示的 icon 的绝对路径,可以是一个任意包含一个icon的资源文件。你通常可以通过指明 `process.execPath` 来显示程序中的icon。
* `iconIndex` 整数 - icon文件中的icon目录。如果一个icon文件包括了两个或多个icon,就需要设置这个值以确定icon。如果一个文件仅包含一个icon,那么这个值为0。
+### `app.allowNTLMCredentialsForAllDomains(allow)`
+
+* `allow` Boolean
+
+Dynamically sets whether to always send credentials for HTTP NTLM or Negotiate
+authentication - normally, Electron will only send NTLM/Kerberos credentials for
+URLs that fall under "Local Intranet" sites (i.e. are in the same domain as you).
+However, this detection often fails when corporate networks are badly configured,
+so this lets you co-opt this behavior and enable it for all URLs.
+### `app.makeSingleInstance(callback)`
+
+* `callback` Function
+
+This method makes your application a Single Instance Application - instead of
+allowing multiple instances of your app to run, this will ensure that only a
+single instance of your app is running, and other instances signal this
+instance and exit.
+
+`callback` will be called with `callback(argv, workingDirectory)` when a second
+instance has been executed. `argv` is an Array of the second instance's command
+line arguments, and `workingDirectory` is its current working directory. Usually
+applications respond to this by making their primary window focused and
+non-minimized.
+
+The `callback` is guaranteed to be executed after the `ready` event of `app`
+gets emitted.
+
+This method returns `false` if your process is the primary instance of the
+application and your app should continue loading. And returns `true` if your
+process has sent its parameters to another instance, and you should immediately
+quit.
+
+On OS X the system enforces single instance automatically when users try to open
+a second instance of your app in Finder, and the `open-file` and `open-url`
+events will be emitted for that. However when users start your app in command
+line the system's single instance machanism will be bypassed and you have to
+use this method to ensure single instance.
+
+An example of activating the window of primary instance when a second instance
+starts:
+
+```js
+var myWindow = null;
+
+var shouldQuit = app.makeSingleInstance(function(commandLine, workingDirectory) {
+ // Someone tried to run a second instance, we should focus our window.
+ if (myWindow) {
+ if (myWindow.isMinimized()) myWindow.restore();
+ myWindow.focus();
+ }
+ return true;
+});
+
+if (shouldQuit) {
+ app.quit();
+ return;
+}
+
+// Create myWindow, load the rest of the app, etc...
+app.on('ready', function() {
+});
+```
+### `app.setAppUserModelId(id)` _Windows_
+
+* `id` String
+
+改变 [Application User Model ID][app-user-model-id] 的 `id`.
+
+### `app.isAeroGlassEnabled()` _Windows_
+
+This method returns `true` if [DWM composition](https://msdn.microsoft.com/en-us/library/windows/desktop/aa969540.aspx)
+(Aero Glass) is enabled, and `false` otherwise. You can use it to determine if
+you should create a transparent window or not (transparent windows won't work
+correctly when DWM composition is disabled).
+
+Usage example:
+
+```js
+let browserOptions = {width: 1000, height: 800};
+
+// Make the window transparent only if the platform supports it.
+if (process.platform !== 'win32' || app.isAeroGlassEnabled()) {
+ browserOptions.transparent = true;
+ browserOptions.frame = false;
+}
+
+// Create the window.
+win = new BrowserWindow(browserOptions);
+
+// Navigate.
+if (browserOptions.transparent) {
+ win.loadURL('file://' + __dirname + '/index.html');
+} else {
+ // No transparency, so we load a fallback that uses basic styles.
+ win.loadURL('file://' + __dirname + '/fallback.html');
+}
+```
### `app.commandLine.appendSwitch(switch[, value])`
通过可选的参数 `value` 给 Chromium 命令行中添加一个开关。
设置应用的 [dock 菜单][dock-menu].
[dock-menu]:https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/customizing_docktile/concepts/dockconcepts.html#//apple_ref/doc/uid/TP30000986-CH2-TPXREF103
-[tasks]:http://msdn.microsoft.com/en-us/library/windows/desktop/dd378460(v=vs.85).aspx#tasks
\ No newline at end of file
+[tasks]:http://msdn.microsoft.com/en-us/library/windows/desktop/dd378460(v=vs.85).aspx#tasks
+[app-user-model-id]: https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx