Update app.md
This commit is contained in:
parent
b2d44a94ce
commit
c69971c381
1 changed files with 200 additions and 29 deletions
|
@ -58,10 +58,14 @@ app.on('window-all-closed', function() {
|
||||||
和 `window-all-closed` 事件的区别。
|
和 `window-all-closed` 事件的区别。
|
||||||
|
|
||||||
### 事件: 'quit'
|
### 事件: 'quit'
|
||||||
|
返回:
|
||||||
|
|
||||||
|
* `event` 事件
|
||||||
|
* `exitCode` 整数
|
||||||
|
|
||||||
当应用程序正在退出时触发。
|
当应用程序正在退出时触发。
|
||||||
|
|
||||||
### 事件: 'open-file'
|
### 事件: 'open-file' _OS X_
|
||||||
|
|
||||||
返回:
|
返回:
|
||||||
|
|
||||||
|
@ -73,8 +77,8 @@ app.on('window-all-closed', function() {
|
||||||
请确认在应用启动的时候(甚至在 `ready` 事件被触发前)就对 `open-file` 事件进行监听,以处理这种情况。
|
请确认在应用启动的时候(甚至在 `ready` 事件被触发前)就对 `open-file` 事件进行监听,以处理这种情况。
|
||||||
|
|
||||||
如果你想处理这个事件,你应该调用 `event.preventDefault()` 。
|
如果你想处理这个事件,你应该调用 `event.preventDefault()` 。
|
||||||
|
在 Windows系统中, 你需要通过解析 process.argv 来获取文件路径。
|
||||||
### 事件: 'open-url'
|
### 事件: 'open-url' _OS X_
|
||||||
|
|
||||||
返回:
|
返回:
|
||||||
|
|
||||||
|
@ -121,32 +125,89 @@ app.on('window-all-closed', function() {
|
||||||
|
|
||||||
当一个 [浏览器窗口](browser-window.md) 被创建的时候触发。
|
当一个 [浏览器窗口](browser-window.md) 被创建的时候触发。
|
||||||
|
|
||||||
### 事件: 'select-certificate'
|
### 事件: 'certificate-error'
|
||||||
|
|
||||||
当一个客户端认证被请求的时候被触发。
|
|
||||||
|
|
||||||
返回:
|
返回:
|
||||||
|
|
||||||
* `event` 事件
|
* `event` 事件
|
||||||
* `webContents` [web组件](browser-window.md#class-webcontents)
|
* `webContents` [web组件](web-contents.md)
|
||||||
* `url` 字符串
|
* `url` 字符串
|
||||||
* `certificateList` 对象
|
* `certificateList` 对象
|
||||||
* `data` PEM 编码数据
|
* `data` PEM 编码数据
|
||||||
* `issuerName` 发行者的公有名称
|
* `issuerName` 发行者的公有名称
|
||||||
* `callback` 函数
|
* `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
|
||||||
|
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
|
```javascript
|
||||||
app.on('select-certificate', function(event, host, url, list, callback) {
|
app.on('select-certificate', function(event, host, url, list, callback) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
callback(list[0]);
|
callback(list[0]);
|
||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
### Event: 'login'
|
||||||
|
|
||||||
The `url` corresponds to the navigation entry requesting the client certificate
|
Returns:
|
||||||
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.
|
|
||||||
|
|
||||||
|
* `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-process-crashed'
|
||||||
|
|
||||||
当GPU进程崩溃时触发。
|
当GPU进程崩溃时触发。
|
||||||
|
@ -164,6 +225,23 @@ certificate from the store.
|
||||||
|
|
||||||
这个方法保证了所有的 `beforeunload` 和 `unload` 事件处理器被正确执行。会存在一个窗口被 `beforeunload` 事件处理器返回 `false` 取消退出的可能性。
|
这个方法保证了所有的 `beforeunload` 和 `unload` 事件处理器被正确执行。会存在一个窗口被 `beforeunload` 事件处理器返回 `false` 取消退出的可能性。
|
||||||
|
|
||||||
|
### `app.hide()` _OS X_
|
||||||
|
|
||||||
|
隐藏所有的应用窗口,不是最小化.
|
||||||
|
|
||||||
|
### `app.show()` _OS X_
|
||||||
|
|
||||||
|
隐藏后重新显示所有的窗口,不会自动选中他们。
|
||||||
|
|
||||||
|
### `app.exit(exitCode)`
|
||||||
|
|
||||||
|
* `exitCode` 整数
|
||||||
|
|
||||||
|
带着`exitCode`退出应用.
|
||||||
|
|
||||||
|
所有的窗口会被立刻关闭,不会询问用户。`before-quit` 和 `will-quit` 这2个事件不会被触发
|
||||||
|
|
||||||
|
|
||||||
### `app.getAppPath()`
|
### `app.getAppPath()`
|
||||||
|
|
||||||
返回当前应用所在的文件路径。
|
返回当前应用所在的文件路径。
|
||||||
|
@ -182,15 +260,15 @@ certificate from the store.
|
||||||
* `$XDG_CONFIG_HOME` or `~/.config` Linux 中
|
* `$XDG_CONFIG_HOME` or `~/.config` Linux 中
|
||||||
* `~/Library/Application Support` OS X 中
|
* `~/Library/Application Support` OS X 中
|
||||||
* `userData` 储存你应用程序设置文件的文件夹,默认是 `appData` 文件夹附加应用的名称。
|
* `userData` 储存你应用程序设置文件的文件夹,默认是 `appData` 文件夹附加应用的名称。
|
||||||
* `cache` 所有用户应用程序缓存的文件夹,默认对应:
|
|
||||||
* `%APPDATA%` Windows 中 (没有一个通用的缓存位置)
|
|
||||||
* `$XDG_CACHE_HOME` 或 `~/.cache` Linux 中
|
|
||||||
* `~/Library/Caches` OS X 中
|
|
||||||
* `userCache` 用于存放应用程序缓存的文件夹,默认是 `cache` 文件夹附加应用的名称。
|
|
||||||
* `temp` 临时文件夹。
|
* `temp` 临时文件夹。
|
||||||
* `userDesktop` 当前用户的桌面文件夹。
|
* `exe` 当前的可执行文件
|
||||||
* `exe` 当前的可执行文件。
|
* `module` `libchromiumcontent` 库.
|
||||||
* `module` `libchromiumcontent` 库。
|
* `desktop` 当前用户的桌面文件夹。
|
||||||
|
* `documents` "我的文件夹"的路径.
|
||||||
|
* `downloads` 用户下载目录的路径.
|
||||||
|
* `music` 用户音乐目录的路径.
|
||||||
|
* `pictures` 用户图片目录的路径.
|
||||||
|
* `videos` 用户视频目录的路径.
|
||||||
|
|
||||||
### `app.setPath(name, path)`
|
### `app.setPath(name, path)`
|
||||||
|
|
||||||
|
@ -201,7 +279,7 @@ certificate from the store.
|
||||||
如果这个路径指向的文件夹不存在,这个文件夹将会被这个方法创建。
|
如果这个路径指向的文件夹不存在,这个文件夹将会被这个方法创建。
|
||||||
如果错误则抛出 `Error` 。
|
如果错误则抛出 `Error` 。
|
||||||
|
|
||||||
你只可以指向 `app.getPath` 中定义过 `name` 的路径。You can only override paths of a `name` defined in `app.getPath`.
|
你只可以指向 `app.getPath` 中定义过 `name` 的路径。
|
||||||
|
|
||||||
默认情况下,网页的 cookie 和缓存都会储存在 `userData` 文件夹。
|
默认情况下,网页的 cookie 和缓存都会储存在 `userData` 文件夹。
|
||||||
如果你想要改变这个位置,你需要在 `app` 模块中的 `ready` 事件被触发之前重写 `userData` 的路径。
|
如果你想要改变这个位置,你需要在 `app` 模块中的 `ready` 事件被触发之前重写 `userData` 的路径。
|
||||||
|
@ -220,16 +298,11 @@ certificate from the store.
|
||||||
|
|
||||||
### `app.getLocale()`
|
### `app.getLocale()`
|
||||||
|
|
||||||
返回当前应用程序的位置。
|
返回当前应用程序的语言种类。
|
||||||
|
|
||||||
### `app.resolveProxy(url, callback)`
|
|
||||||
|
|
||||||
* `url` URL
|
|
||||||
* `callback` 函数
|
|
||||||
|
|
||||||
为 `url` 解析代理信息。 `callback` 在请求被执行之后将会被 `callback(proxy)` 调用。
|
### `app.addRecentDocument(path)` _OS X_ _Windows_
|
||||||
|
|
||||||
### `app.addRecentDocument(path)`
|
|
||||||
|
|
||||||
* `path` 字符串
|
* `path` 字符串
|
||||||
|
|
||||||
|
@ -237,7 +310,7 @@ certificate from the store.
|
||||||
|
|
||||||
这个列表由操作系统进行管理。在 Windows 中您可以通过任务条进行访问,在 OS X 中你可以通过dock 菜单进行访问。
|
这个列表由操作系统进行管理。在 Windows 中您可以通过任务条进行访问,在 OS X 中你可以通过dock 菜单进行访问。
|
||||||
|
|
||||||
### `app.clearRecentDocuments()`
|
### `app.clearRecentDocuments()` _OS X_ _Windows_
|
||||||
|
|
||||||
清除最近访问的文档列表。
|
清除最近访问的文档列表。
|
||||||
|
|
||||||
|
@ -257,6 +330,103 @@ certificate from the store.
|
||||||
* `iconPath` 字符串 - JumpList 中显示的 icon 的绝对路径,可以是一个任意包含一个icon的资源文件。你通常可以通过指明 `process.execPath` 来显示程序中的icon。
|
* `iconPath` 字符串 - JumpList 中显示的 icon 的绝对路径,可以是一个任意包含一个icon的资源文件。你通常可以通过指明 `process.execPath` 来显示程序中的icon。
|
||||||
* `iconIndex` 整数 - icon文件中的icon目录。如果一个icon文件包括了两个或多个icon,就需要设置这个值以确定icon。如果一个文件仅包含一个icon,那么这个值为0。
|
* `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])`
|
### `app.commandLine.appendSwitch(switch[, value])`
|
||||||
|
|
||||||
通过可选的参数 `value` 给 Chromium 命令行中添加一个开关。
|
通过可选的参数 `value` 给 Chromium 命令行中添加一个开关。
|
||||||
|
@ -313,3 +483,4 @@ Append a switch (with optional `value`) to Chromium's command line.
|
||||||
|
|
||||||
[dock-menu]:https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/customizing_docktile/concepts/dockconcepts.html#//apple_ref/doc/uid/TP30000986-CH2-TPXREF103
|
[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
|
[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
|
||||||
|
|
Loading…
Reference in a new issue