새로운 [browserWindow](browser-window.md)가 생성되었을 때 발생하는 이벤트입니다.
+### Event: 'web-contents-created'
+
+Returns:
+
+* `event` Event
+* `webContents` WebContents
+
+새로운 [webContents](web-contents.md)가 생성되었을 때 발생하는 이벤트입니다.
+
### Event: 'certificate-error'
Returns:
- [nuts][nuts]: *애플리케이션을 위한 똑똑한 릴리즈 서버이며 GitHub를 백엔드로
사용합니다. Squirrel을 통해 자동 업데이트를 지원합니다. (Mac & Windows)*
- [electron-release-server][electron-release-server]: *완벽하게 모든 기능을
-지원하는 electron 애플리케이션을 위한 자가 호스트 릴리즈 서버입니다. auto-updater와
+지원하는 electron 애플리케이션을 위한 자가 호스트 릴리즈 서버입니다. autoUpdater와
호환됩니다*
- [squirrel-updates-server][squirrel-updates-server]: *GitHub 릴리즈를 사용하는
Squirrel.Mac 와 Squirrel.Windows를 위한 간단한 node.js 기반 서버입니다*
### OS X
-OS X에선 `auto-updater` 모듈이 [Squirrel.Mac][squirrel-mac]를 기반으로 작동합니다.
+OS X에선 `autoUpdater`가 [Squirrel.Mac][squirrel-mac]를 기반으로 작동합니다.
따라서 이 모듈을 작동시키기 위해 특별히 준비해야 할 작업은 없습니다.
서버 사이드 요구 사항은 [서버 지원][server-support]을 참고하세요.
### Windows
-Windows에선 `auto-updater` 모듈을 사용하기 전에 애플리케이션을 사용자의 장치에
-설치해야 합니다. [grunt-electron-installer][installer]를 사용하여 애플리케이션
-인스톨러를 만드는 것을 권장합니다.
+Windows에선 `autoUpdater`를 사용하기 전에 애플리케이션을 사용자의 장치에
+설치해야 합니다. [electron-winstaller][installer-lib],
+[electron-builder][electron-builder-lib] 또는
+[grunt-electron-installer][installer]를 사용하여 애플리케이션 인스톨러를 만드는 것을
+권장합니다.
Windows에선 `autoUpdater` 모듈을 사용하기 전에 사용자의 장치에 애플리케이션을
설치해야 합니다. 따라서 [electron-winstaller][installer-lib] 모듈이나
### Linux
-Linux는 따로 `auto-updater`를 지원하지 않습니다.
+Linux는 따로 `autoUpdater`를 지원하지 않습니다.
각 배포판의 패키지 관리자를 통해 애플리케이션 업데이트를 제공하는 것을 권장합니다.
## Events
[squirrel-windows]: https://github.com/Squirrel/Squirrel.Windows
[installer]: https://github.com/electron/grunt-electron-installer
[installer-lib]: https://github.com/electron/windows-installer
+[electron-builder-lib]: https://github.com/electron-userland/electron-builder
[app-user-model-id]: https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx
[electron-release-server]: https://github.com/ArekSredzki/electron-release-server
[squirrel-updates-server]: https://github.com/Aluxian/squirrel-updates-server
않습니다. 기본값은 `true` 입니다.
* `closable` Boolean - 윈도우를 닫을 수 있는지 여부. Linux에선 구현되어있지 않습니다.
기본값은 `true` 입니다.
+* `focusable` Boolean - 윈도우가 포커스될 수 있는지 여부입니다. 기본값은
+ `true`입니다. Windows에선 `focusable: false`를 설정함으로써 암시적으로
+ `skipTaskbar: true`도 설정됩니다. Linux에선 `focusable: false`를 설정함으로써
+ 윈도우가 wm과 함께 반응을 중지하며 모든 작업 영역에서 윈도우가 언제나 최상단에 있게
+ 됩니다.
* `alwaysOnTop` Boolean - 윈도우이 언제나 다른 창들 위에 유지되는지 여부.
기본값은 `false`입니다.
* `fullscreen` Boolean - 윈도우의 전체화면 활성화 여부. 이 속성을 명시적으로
프로그램 작성에 사용할 수 없습니다. 만약 이미 로드된 확장 기능을 추가하려 한다면, 이
메서드는 아무것도 반환하지 않고 콘솔에 경고가 로그됩니다.
+**참고:** 이 API는 `app` 모듈의 `ready` 이벤트가 발생하기 전까지 사용할 수 없습니다.
+
### `BrowserWindow.removeDevToolsExtension(name)`
* `name` String
`name`에 해당하는 개발자 도구 확장 기능을 제거합니다.
+**참고:** 이 API는 `app` 모듈의 `ready` 이벤트가 발생하기 전까지 사용할 수 없습니다.
+
### `BrowserWindow.getDevToolsExtensions()`
키는 확장 기능 이름을 값은 `name`과 `version` 속성을 포함하는 객체를 가지는 객체를
let installed = BrowserWindow.getDevToolsExtensions().hasOwnProperty('devtron')
```
+**참고:** 이 API는 `app` 모듈의 `ready` 이벤트가 발생하기 전까지 사용할 수 없습니다.
+
## Instance Properties
`new BrowserWindow`로 생성한 객체는 다음과 같은 속성을 가지고 있습니다:
이 윈도우에서 일어나는 모든 마우스 이벤트가 이 윈도우 밑의 윈도우로 전달됩니다. 하지만
이 윈도우가 포커스되어 있다면, 여전히 키보드 이벤트는 받을 수 있습니다.
+### `win.setFocusable(focusable)` _Windows_
+
+* `focusable` Boolean
+
+윈도우가 포커스될 수 있는지 여부를 변경합니다.
+
[blink-feature-string]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in
* `hideothers` - `hideOtherApplications` 액션에 대응
* `unhide` - `unhideAllApplications` 액션에 대응
* `front` - `arrangeInFront` 액션에 대응
+* `zoom` - `performZoom` 액션에 대응
* `window` - 부 메뉴를 가지는 "Window" 메뉴
* `help` - 부 메뉴를 가지는 "Help" 메뉴
* `services` - 부 메뉴를 가지는 "Services" 메뉴
role: 'paste'
},
{
+ label: 'Paste and Match Style',
+ accelerator: 'Shift+Command+V',
+ role: 'pasteandmatchstyle'
+ },
+ {
+ label: 'Delete',
+ role: 'delete'
+ },
+ {
label: 'Select All',
accelerator: 'CmdOrCtrl+A',
role: 'selectall'
]
});
// Window menu.
- template[3].submenu.push(
+ template[3].submenu = [
+ {
+ label: 'Close',
+ accelerator: 'CmdOrCtrl+W',
+ role: 'close'
+ },
+ {
+ label: 'Minimize',
+ accelerator: 'CmdOrCtrl+M',
+ role: 'minimize'
+ },
+ {
+ label: 'Zoom',
+ role: 'zoom'
+ },
{
type: 'separator'
},
label: 'Bring All to Front',
role: 'front'
}
- );
+ ];
}
const menu = Menu.buildFromTemplate(template);
**참고** 이 API는 `app`의 `ready` 이벤트가 발생한 이후에 호출해야 합니다.
+### `Menu.getApplicationMenu()`
+
+설정되어있는 어플리케이션 메뉴를 반환합니다. (`Menu`의 인스턴스) 만약 없다면 `null`을
+반환합니다.
+
### `Menu.sendActionToFirstResponder(action)` _OS X_
* `action` String
* `y` Integer
트레이 아이콘의 컨텍스트 메뉴를 팝업시킵니다. `menu`가 전달되면, `menu`가 트레이
-메뉴의 컨텍스트 메뉴 대신 표시됩니다.
+아이콘의 컨텍스트 메뉴 대신 표시됩니다.
`position`은 Windows에서만 사용할 수 있으며 기본값은 (0, 0)입니다.
{
tooltip: 'button1',
icon: path.join(__dirname, 'button1.png'),
- click() { console.log('button2 clicked'); }
+ click() { console.log('button1 clicked'); }
},
{
tooltip: 'button2',
* `webSecurity`를 비활성화하지 않습니다. 이 옵션을 비활성화하면 동일-출처 정책도
비활성화됩니다.
* [`Content-Security-Policy`](http://www.html5rocks.com/en/tutorials/security/content-security-policy/)
- 를 정의하고, 한정적인 규칙을 사용하세요 (ie: `script-src 'self'`)
+ 를 정의하고, 한정적인 규칙을 사용하세요 (i.e. `script-src 'self'`)
* 문자열을 코드로 실행할 수 있는
[`eval`을 덮어쓰고 비활성화](https://github.com/nylas/N1/blob/0abc5d5defcdb057120d726b271933425b75b415/static/index.js#L6)하세요.
* `allowDisplayingInsecureContent`를 `true`로 설정하지 마세요.
Travis에선, `.travis.yml`이 대충 다음과 같이 되어야 합니다:
-```
+```yml
addons:
apt:
packages:
}).then(function (title) {
// 윈도우의 제목을 검증합니다.
assert.equal(title, 'My App')
-}).then(function () {
- // 애플리케이션을 중지합니다.
- return app.stop()
}).catch(function (error) {
// 테스트의 실패가 있다면 로깅합니다.
console.error('Test failed', error.message)
+}).then(function () {
+ // 애플리케이션을 중지합니다.
+ return app.stop()
})
```