📝 Update as upstream

[ci skip]
This commit is contained in:
Plusb Preco 2016-02-17 00:40:35 +09:00 committed by Cheng Zhao
parent 175449f096
commit 407bef5727
10 changed files with 182 additions and 116 deletions

View file

@ -57,6 +57,7 @@ API 레퍼런스가 있습니다. Electron을 빌드 하는 방법과 프로젝
- [중국어 번체](https://github.com/atom/electron/tree/master/docs-translations/zh-TW) - [중국어 번체](https://github.com/atom/electron/tree/master/docs-translations/zh-TW)
- [우크라이나어](https://github.com/atom/electron/tree/master/docs-translations/uk-UA) - [우크라이나어](https://github.com/atom/electron/tree/master/docs-translations/uk-UA)
- [러시아어](https://github.com/atom/electron/tree/master/docs-translations/ru-RU) - [러시아어](https://github.com/atom/electron/tree/master/docs-translations/ru-RU)
- [프랑스어](https://github.com/atom/electron/tree/master/docs-translations/fr-FR)
## 시작하기 ## 시작하기

View file

@ -451,7 +451,6 @@ var win = new BrowserWindow({ width: 800, height: 600 });
* `aspectRatio` 유지하려 하는 컨텐츠 뷰 일부의 종횡비 * `aspectRatio` 유지하려 하는 컨텐츠 뷰 일부의 종횡비
* `extraSize` Object (optional) - 종횡비를 유지하는 동안 포함되지 않을 엑스트라 크기. * `extraSize` Object (optional) - 종횡비를 유지하는 동안 포함되지 않을 엑스트라 크기.
사용 가능한 속성:
* `width` Integer * `width` Integer
* `height` Integer * `height` Integer
@ -469,7 +468,7 @@ var win = new BrowserWindow({ width: 800, height: 600 });
### `win.setBounds(options[, animate])` ### `win.setBounds(options[, animate])`
* `options` Object, properties: * `options` Object
* `x` Integer * `x` Integer
* `y` Integer * `y` Integer
@ -719,8 +718,7 @@ Windows 메시지 훅을 등록합니다. `callback`은 WndProc에서 메시지
### `win.capturePage([rect, ]callback)` ### `win.capturePage([rect, ]callback)`
* `rect` Object (optional) - 캡쳐할 페이지의 영역. * `rect` Object (optional) - 캡쳐할 페이지의 영역
사용할 수 있는 속성은 다음과 같습니다:
* `x` Integer * `x` Integer
* `y` Integer * `y` Integer
* `width` Integer * `width` Integer
@ -790,34 +788,34 @@ Linux 플랫폼에선 Unity 데스크톱 환경만 지원합니다. 그리고
### `win.setThumbarButtons(buttons)` _Windows 7+_ ### `win.setThumbarButtons(buttons)` _Windows 7+_
`buttons` - `button` 객체의 배열 * `buttons` - Array
`button` 객체는 다음과 같은 속성을 가지고 있습니다:
* `icon` [NativeImage](native-image.md) - 미리보기 툴바에 보여질 아이콘.
* `tooltip` String (optional) - 버튼의 툴팁 텍스트.
* `flags` Array (optional) - 버튼의 특정 동작 및 상태 제어. 기본적으로 `enabled`
사용됩니다. 이 속성은 다음 문자열들을 포함할 수 있습니다:
* `enabled` - 사용자가 사용할 수 있도록 버튼이 활성화 됩니다.
* `disabled` - 버튼이 비활성화 됩니다. 버튼은 표시되지만 시각적인 상태는 사용자의
동작에 응답하지 않는 비활성화 상태로 표시됩니다.
* `dismissonclick` - 버튼이 클릭되면 작업표시줄 버튼의 미리보기(flyout)가 즉시
종료됩니다.
* `nobackground` - 버튼의 테두리를 표시하지 않습니다. 이미지에만 사용할 수 있습니다.
* `hidden` - 버튼을 사용자에게 표시되지 않도록 숨깁니다.
* `noninteractive` - 버튼은 활성화되어 있지만 반응이 제거되며 버튼을 눌러도
눌려지지 않은 상태를 유지합니다. 이 값은 버튼을 알림의 용도로 사용하기 위해
만들어졌습니다.
* `click` - Function
윈도우 작업표시줄 버튼 레이아웃의 미리보기 이미지 영역에 미리보기 툴바와 버튼 세트를 윈도우 작업표시줄 버튼 레이아웃의 미리보기 이미지 영역에 미리보기 툴바와 버튼 세트를
지정합니다. 반환되는 `Boolean` 값은 미리보기 툴바가 성공적으로 추가됬는지를 알려줍니다. 추가합니다. 반환되는 `Boolean` 값은 미리보기 툴바가 성공적으로 추가됬는지를 알려줍니다.
미리보기 이미지 영역의 제한된 크기로 인해 미리보기 툴바에 추가될 수 있는 최대 버튼의 미리보기 이미지 영역의 제한된 크기로 인해 미리보기 툴바에 추가될 수 있는 최대 버튼의
개수는 7개이며 이 이상 추가될 수 없습니다. 플랫폼의 제약으로 인해 미리보기 툴바는 한 번 개수는 7개이며 이 이상 추가될 수 없습니다. 플랫폼의 제약으로 인해 미리보기 툴바는 한 번
설정되면 삭제할 수 없습니다. 하지만 이 API에 빈 배열을 전달하여 버튼들을 제거할 수 설정되면 삭제할 수 없습니다. 하지만 이 API에 빈 배열을 전달하여 버튼들을 제거할 수
있습니다. 있습니다.
`buttons``Button` 객체의 배열입니다:
* `Button` 객체
* `icon` [NativeImage](native-image.md) - 미리보기 툴바에 보여질 아이콘.
* `tooltip` String (optional) - 버튼의 툴팁 텍스트.
* `flags` Array (optional) - 버튼의 특정 동작 및 상태 제어. 기본적으로 `enabled`
사용됩니다. 이 속성은 다음 문자열들을 포함할 수 있습니다:
* `enabled` - 사용자가 사용할 수 있도록 버튼이 활성화 됩니다.
* `disabled` - 버튼이 비활성화 됩니다. 버튼은 표시되지만 시각적인 상태는 사용자의
동작에 응답하지 않는 비활성화 상태로 표시됩니다.
* `dismissonclick` - 버튼이 클릭되면 작업표시줄 버튼의 미리보기(flyout)가 즉시
종료됩니다.
* `nobackground` - 버튼의 테두리를 표시하지 않습니다. 이미지에만 사용할 수 있습니다.
* `hidden` - 버튼을 사용자에게 표시되지 않도록 숨깁니다.
* `noninteractive` - 버튼은 활성화되어 있지만 반응이 제거되며 버튼을 눌러도
눌려지지 않은 상태를 유지합니다. 이 값은 버튼을 알림의 용도로 사용하기 위해
만들어졌습니다.
### `win.showDefinitionForSelection()` _OS X_ ### `win.showDefinitionForSelection()` _OS X_
페이지의 선택된 단어에 대한 사전 검색 결과 팝업을 표시합니다. 페이지의 선택된 단어에 대한 사전 검색 결과 팝업을 표시합니다.

View file

@ -22,19 +22,15 @@ crashReporter.start({
### `crashReporter.start(options)` ### `crashReporter.start(options)`
* `options` Object, properties: * `options` Object
* `companyName` String
* `productName` String, 기본값: Electron * `submitURL` String - 크래시 리포트는 POST 방식으로 이 URL로 전송됩니다.
* `companyName` String (**필수항목**) * `productName` String (optional) - 기본값은 `Electron` 입니다.
* `submitURL` String, (**필수항목**) * `autoSubmit` Boolean - 유저의 승인 없이 자동으로 오류를 보고합니다. 기본값은
* 크래시 리포트는 POST 방식으로 이 URL로 전송됩니다. `true` 입니다.
* `autoSubmit` Boolean, 기본값: true * `ignoreSystemCrashHandler` Boolean - 기본값은 `false` 입니다.
* true로 지정할 경우 유저의 승인 없이 자동으로 오류를 보고합니다. * `extra` Object - 크래시 리포트 시 같이 보낼 추가 정보를 지정하는 객체입니다.
* `ignoreSystemCrashHandler` Boolean, 기본값: false 문자열로 된 속성만 정상적으로 보내집니다. 중첩된 객체는 지원되지 않습니다.
* `extra` Object
* 크래시 리포트 시 같이 보낼 추가 정보를 지정하는 객체입니다.
* 문자열로 된 속성만 정상적으로 보내집니다.
* 중첩 객체는 지원되지 않습니다. (Nested objects are not supported)
다른 crashReporter API를 사용하기 전에 이 메서드를 먼저 호출해야 합니다. 다른 crashReporter API를 사용하기 전에 이 메서드를 먼저 호출해야 합니다.

View file

@ -8,8 +8,7 @@
## 메시지 전송 ## 메시지 전송
물론 메시지를 받는 것 말고도 메인 프로세스에서 랜더러 프로세스로 보내는 것도 가능합니다. 물론 메시지를 받는 것 말고도 메인 프로세스에서 랜더러 프로세스로 보내는 것도 가능합니다.
자세한 내용은 [webContents.send](web-contents.md#webcontentssendchannel-arg1-arg2-)를 자세한 내용은 [webContents.send][web-contents-send]를 참고하세요.
참고하세요.
* 메시지를 전송할 때 이벤트 이름은 `channel`이 됩니다. * 메시지를 전송할 때 이벤트 이름은 `channel`이 됩니다.
* 메시지에 동기로 응답할 땐 반드시 `event.returnValue`를 설정해야 합니다. * 메시지에 동기로 응답할 땐 반드시 `event.returnValue`를 설정해야 합니다.
@ -46,34 +45,40 @@ ipcRenderer.send('asynchronous-message', 'ping');
`ipcMain`은 다음과 같은 이벤트 리스닝 메서드를 가지고 있습니다: `ipcMain`은 다음과 같은 이벤트 리스닝 메서드를 가지고 있습니다:
### `ipcMain.on(channel, callback)` ### `ipcMain.on(channel, listener)`
* `channel` String - 이벤트 이름 * `channel` String
* `callback` Function * `listener` Function
이벤트가 발생하면 `event` 객체와 임의 메시지와 함께 `callback`이 호출됩니다. `channel`에 대해 이벤트를 리스닝합니다. 새로운 메시지가 도착하면 `listener`
`listener(event, args...)` 형식으로 호출됩니다.
### `ipcMain.removeListener(channel, callback)` ### `ipcMain.once(channel, listener)`
* `channel` String - 이벤트의 이름 * `channel` String
* `callback` Function - `ipcMain.on(channel, callback)`에서 사용한 함수의 레퍼런스 * `listener` Function
이벤트에 대해 한 번만 작동하는 `listener` 함수를 등록합니다. 이 `listener`는 등록된
`channel`에 보내지는 메시지에 한해 호출됩니다. 호출된 이후엔 리스너가 삭제됩니다.
### `ipcMain.removeListener(channel, listener)`
* `channel` String
* `listener` Function
메시지 수신을 완료한 후, 더 이상의 콜백이 필요하지 않을 때 또는 몇 가지 이유로 채널의 메시지 수신을 완료한 후, 더 이상의 콜백이 필요하지 않을 때 또는 몇 가지 이유로 채널의
메시지 전송을 멈출수 없을 때, 이 함수를 통해 지정한 채널에 대한 콜백을 삭제할 수 메시지 전송을 멈출수 없을 때, 이 함수를 통해 지정한 채널에 대한 콜백을 삭제할 수
있습니다. 있습니다.
지정한 `channel`에 대한 리스너를 저장하는 배열에서 지정한 `listener`를 삭제합니다.
### `ipcMain.removeAllListeners(channel)` ### `ipcMain.removeAllListeners(channel)`
* `channel` String - 이벤트의 이름 * `channel` String (optional)
이 ipc 채널에 등록된 *모든* 핸들러들을 삭제합니다. 이 ipc 채널에 등록된 모든 핸들러들을 삭제하거나 지정한 `channel`을 삭제합니다.
### `ipcMain.once(channel, callback)` ## Event 객체
`ipcMain.on()` 대신 이 함수를 사용할 경우 핸들러가 단 한 번만 호출됩니다.
`callback`이 한 번 호출된 이후 활성화되지 않습니다.
## IPC Event
`callback`에서 전달된 `event` 객체는 다음과 같은 메서드와 속성을 가지고 있습니다: `callback`에서 전달된 `event` 객체는 다음과 같은 메서드와 속성을 가지고 있습니다:
@ -85,5 +90,6 @@ ipcRenderer.send('asynchronous-message', 'ping');
메시지를 보낸 `webContents` 객체를 반환합니다. `event.sender.send` 메서드를 통해 메시지를 보낸 `webContents` 객체를 반환합니다. `event.sender.send` 메서드를 통해
비동기로 메시지를 전달할 수 있습니다. 자세한 내용은 비동기로 메시지를 전달할 수 있습니다. 자세한 내용은
[webContents.send](web-contents.md#webcontentssendchannel-arg1-arg2-)를 [webContents.send][web-contents-send]를 참고하세요.
참고하세요.
[web-contents-send]: web-contents.md#webcontentssendchannel-arg1-arg2-

View file

@ -10,32 +10,38 @@
`ipcRenderer`는 다음과 같은 이벤트 리스닝 메서드를 가지고 있습니다: `ipcRenderer`는 다음과 같은 이벤트 리스닝 메서드를 가지고 있습니다:
### `ipcRenderer.on(channel, callback)` ### `ipcMain.on(channel, listener)`
* `channel` String - 이벤트 이름 * `channel` String
* `callback` Function * `listener` Function
이벤트가 일어나면 `event` 객체와 임의의 인자와 함께 `callback` 함수가 호출됩니다. `channel`에 대해 이벤트를 리스닝합니다. 새로운 메시지가 도착하면 `listener`
`listener(event, args...)` 형식으로 호출됩니다.
### `ipcRenderer.removeListener(channel, callback)` ### `ipcMain.once(channel, listener)`
* `channel` String - 이벤트의 이름 * `channel` String
* `callback` Function - `ipcMain.on(channel, callback)`에서 사용한 함수의 레퍼런스 * `listener` Function
이벤트에 대해 한 번만 작동하는 `listener` 함수를 등록합니다. 이 `listener`는 등록된
`channel`에 보내지는 메시지에 한해 호출됩니다. 호출된 이후엔 리스너가 삭제됩니다.
### `ipcMain.removeListener(channel, listener)`
* `channel` String
* `listener` Function
메시지 수신을 완료한 후, 더 이상의 콜백이 필요하지 않을 때 또는 몇 가지 이유로 채널의 메시지 수신을 완료한 후, 더 이상의 콜백이 필요하지 않을 때 또는 몇 가지 이유로 채널의
메시지 전송을 멈출수 없을 때, 이 함수를 통해 지정한 채널에 대한 콜백을 삭제할 수 메시지 전송을 멈출수 없을 때, 이 함수를 통해 지정한 채널에 대한 콜백을 삭제할 수
있습니다. 있습니다.
### `ipcRenderer.removeAllListeners(channel)` 지정한 `channel`에 대한 리스너를 저장하는 배열에서 지정한 `listener`를 삭제합니다.
* `channel` String - 이벤트의 이름 ### `ipcMain.removeAllListeners(channel)`
이 ipc 채널에 등록된 *모든* 핸들러들을 삭제합니다. * `channel` String (optional)
### `ipcRenderer.once(channel, callback)` 이 ipc 채널에 등록된 모든 핸들러들을 삭제하거나 지정한 `channel`을 삭제합니다.
`ipcRenderer.on()` 대신 이 함수를 사용할 경우 핸들러가 단 한 번만 호출됩니다.
`callback`이 한 번 호출된 이후 활성화되지 않습니다.
## 메시지 보내기 ## 메시지 보내기
@ -43,23 +49,26 @@
### `ipcRenderer.send(channel[, arg1][, arg2][, ...])` ### `ipcRenderer.send(channel[, arg1][, arg2][, ...])`
* `channel` String - 이벤트 이름 * `channel` String
* `arg` (optional) * `arg` (optional)
`channel`을 통해 메인 프로세스에 비동기 메시지를 보냅니다. 그리고 필요에 따라 임의의 `channel`을 통해 메인 프로세스에 비동기 메시지를 보냅니다. 그리고 필요에 따라 임의의
인자를 사용할 수도 있습니다. 메인 프로세스는 `ipcMain` 모듈의 `channel` 이벤트를 통해 인수를 사용할 수도 있습니다. 인수들은 내부적으로 JSON 포맷으로 직렬화 되며, 이후 함수와
프로토타입 체인은 포함되지 않게 됩니다.
메인 프로세스는 `ipcMain` 모듈의 `channel` 이벤트를 통해
이벤트를 리스닝 할 수 있습니다. 이벤트를 리스닝 할 수 있습니다.
### `ipcRenderer.sendSync(channel[, arg1][, arg2][, ...])` ### `ipcRenderer.sendSync(channel[, arg1][, arg2][, ...])`
* `channel` String - 이벤트 이름 * `channel` String
* `arg` (optional) * `arg` (optional)
`channel`을 통해 메인 프로세스에 동기 메시지를 보냅니다. 그리고 필요에 따라 임의의 `channel`을 통해 메인 프로세스에 동기 메시지를 보냅니다. 그리고 필요에 따라 임의의
인자를 사용할 수도 있습니다. 메인 프로세스는 `ipc`를 통해 `channel` 이벤트를 리스닝 인자를 사용할 수도 있습니다. 인수들은 내부적으로 JSON 포맷으로 직렬화 되며, 이후 함수와
할 수 있습니다. 프로토타입 체인은 포함되지 않게 됩니다.
메인 프로세스에선 `ipcMain` 모듈의 `channel` 이벤트를 통해 받은 메인 프로세스`ipcMain` 모듈을 통해 `channel` 이벤트를 리스닝 할 수 있고,
`event.returnValue`로 회신 할 수 있습니다. `event.returnValue`로 회신 할 수 있습니다.
__참고:__ 동기 메서드는 모든 랜더러 프로세스의 작업을 일시 중단시킵니다. 사용 목적이 __참고:__ 동기 메서드는 모든 랜더러 프로세스의 작업을 일시 중단시킵니다. 사용 목적이
@ -67,7 +76,7 @@ __참고:__ 동기 메서드는 모든 랜더러 프로세스의 작업을 일
### `ipcRenderer.sendToHost(channel[, arg1][, arg2][, ...])` ### `ipcRenderer.sendToHost(channel[, arg1][, arg2][, ...])`
* `channel` String - 이벤트 이름 * `channel` String
* `arg` (optional) * `arg` (optional)
`ipcRenderer.send`와 비슷하지만 이벤트를 메인 프로세스 대신 호스트 페이지내의 `ipcRenderer.send`와 비슷하지만 이벤트를 메인 프로세스 대신 호스트 페이지내의

View file

@ -255,8 +255,8 @@ Returns:
* `result` Object * `result` Object
* `requestId` Integer * `requestId` Integer
* `finalUpdate` Boolean - 더 많은 응답이 따르는 경우를 표시합니다. * `finalUpdate` Boolean - 더 많은 응답이 따르는 경우를 표시합니다.
* `matches` Integer (Optional) - 일치하는 개수. * `matches` Integer (optional) - 일치하는 개수.
* `selectionArea` Object (Optional) - 첫 일치 부위의 좌표. * `selectionArea` Object (optional) - 첫 일치 부위의 좌표.
[`webContents.findInPage`](web-contents.md#webcontentsfindinpage) 요청의 결과를 [`webContents.findInPage`](web-contents.md#webcontentsfindinpage) 요청의 결과를
사용할 수 있을 때 발생하는 이벤트입니다. 사용할 수 있을 때 발생하는 이벤트입니다.
@ -307,7 +307,7 @@ Returns:
### `webContents.loadURL(url[, options])` ### `webContents.loadURL(url[, options])`
* `url` URL * `url` URL
* `options` Object (optional), 속성들: * `options` Object (optional)
* `httpReferrer` String - HTTP 레퍼러 url. * `httpReferrer` String - HTTP 레퍼러 url.
* `userAgent` String - 요청을 시작한 유저 에이전트. * `userAgent` String - 요청을 시작한 유저 에이전트.
* `extraHeaders` String - "\n"로 구분된 Extra 헤더들. * `extraHeaders` String - "\n"로 구분된 Extra 헤더들.
@ -493,7 +493,7 @@ CSS 코드를 현재 웹 페이지에 삽입합니다.
### `webContents.findInPage(text[, options])` ### `webContents.findInPage(text[, options])`
* `text` String - 찾을 컨텐츠, 반드시 공백이 아니여야 합니다. * `text` String - 찾을 컨텐츠, 반드시 공백이 아니여야 합니다.
* `options` Object (Optional) * `options` Object (optional)
* `forward` Boolean - 앞에서부터 검색할지 뒤에서부터 검색할지 여부입니다. 기본값은 * `forward` Boolean - 앞에서부터 검색할지 뒤에서부터 검색할지 여부입니다. 기본값은
`true`입니다. `true`입니다.
* `findNext` Boolean - 작업을 계속 처리할지 첫 요청만 처리할지 여부입니다. 기본값은 * `findNext` Boolean - 작업을 계속 처리할지 첫 요청만 처리할지 여부입니다. 기본값은
@ -546,11 +546,10 @@ ServiceWorker가 존재하면 모두 등록을 해제하고 JS Promise가 만족
### `webContents.print([options])` ### `webContents.print([options])`
`options` Object (optional), properties: `options` Object (optional)
* `silent` Boolean - 사용자에게 프린트 설정을 묻지 않습니다. 기본값을 `false`입니다.
* `silent` Boolean - 사용자에게 프린트 설정을 묻지 않습니다. 기본값을 `false`입니다. * `printBackground` Boolean - 웹 페이지의 배경 색과 이미지를 출력합니다. 기본값은
* `printBackground` Boolean - 웹 페이지의 배경 색과 이미지를 출력합니다. 기본값은 `false`입니다.
`false`입니다.
윈도우의 웹 페이지를 프린트합니다. `silent``false`로 지정되어있을 땐, Electron이 윈도우의 웹 페이지를 프린트합니다. `silent``false`로 지정되어있을 땐, Electron이
시스템의 기본 프린터와 기본 프린터 설정을 가져옵니다. 시스템의 기본 프린터와 기본 프린터 설정을 가져옵니다.
@ -565,32 +564,23 @@ print기능을 사용하지 않는 경우 전체 바이너리 크기를 줄이
### `webContents.printToPDF(options, callback)` ### `webContents.printToPDF(options, callback)`
`options` Object, properties: * `options` Object
* `marginsType` Integer - 사용할 마진의 종류를 지정합니다. 0 부터 2 사이 값을 사용할
* `marginsType` Integer - 사용할 마진의 종류를 지정합니다. 수 있고 각각 기본 마진, 마진 없음, 최소 마진입니다.
* 0 - default * `pageSize` String - 생성되는 PDF의 페이지 크기를 지정합니다. 값은 `A3`, `A4`,
* 1 - none `A5`, `Legal`, `Letter``Tabloid`가 사용될 수 있습니다.
* 2 - minimum * `printBackground` Boolean - CSS 배경을 프린트할지 여부를 정합니다.
* `pageSize` String - 생성되는 PDF의 페이지 크기를 지정합니다. * `printSelectionOnly` Boolean - 선택된 영역만 프린트할지 여부를 정합니다.
* `A5` * `landscape` Boolean - landscape을 위해선 `true`를, portrait를 위해선 `false`
* `A4` 사용합니다.
* `A3` * `callback` Function - `function(error, data) {}`
* `Legal`
* `Letter`
* `Tabloid`
* `printBackground` Boolean - CSS 배경을 프린트할지 여부를 정합니다.
* `printSelectionOnly` Boolean - 선택된 영역만 프린트할지 여부를 정합니다.
* `landscape` Boolean - landscape을 위해선 `true`를, portrait를 위해선 `false`
사용합니다.
`callback` Function - `function(error, data) {}`
* `error` Error
* `data` Buffer - PDF 파일 내용.
Chromium의 미리보기 프린팅 커스텀 설정을 이용하여 윈도우의 웹 페이지를 PDF로 Chromium의 미리보기 프린팅 커스텀 설정을 이용하여 윈도우의 웹 페이지를 PDF로
프린트합니다. 프린트합니다.
`callback`은 작업이 완료되면 `callback(error, data)` 형식으로 호출됩니다. `data`
생성된 PDF 데이터를 담고있는 `Buffer`입니다.
기본으로 비어있는 `options`은 다음과 같이 여겨지게 됩니다: 기본으로 비어있는 `options`은 다음과 같이 여겨지게 됩니다:
```javascript ```javascript
@ -643,7 +633,7 @@ mainWindow.webContents.on('devtools-opened', function() {
### `webContents.openDevTools([options])` ### `webContents.openDevTools([options])`
* `options` Object (optional). Properties: * `options` Object (optional)
* `detach` Boolean - 새 창에서 개발자 도구를 엽니다. * `detach` Boolean - 새 창에서 개발자 도구를 엽니다.
개발자 도구를 엽니다. 개발자 도구를 엽니다.
@ -681,8 +671,11 @@ mainWindow.webContents.on('devtools-opened', function() {
* `arg` (optional) * `arg` (optional)
`channel`을 통하여 렌더러 프로세스에 비동기 메시지를 보냅니다. 임의의 인수를 보낼수도 `channel`을 통하여 렌더러 프로세스에 비동기 메시지를 보냅니다. 임의의 인수를 보낼수도
있습니다. 렌더러 프로세스는 `ipcRenderer` 모듈을 통하여 `channel`를 리슨하여 메시지를 있습니다. 인수들은 내부적으로 JSON 포맷으로 직렬화 되며, 이후 함수와 프로토타입 체인은
처리할 수 있습니다. 포함되지 않게 됩니다.
렌더러 프로세스는 `ipcRenderer` 모듈을 통하여 `channel`를 리스닝하여 메시지를 처리할
수 있습니다.
메인 프로세스에서 렌더러 프로세스로 메시지를 보내는 예시 입니다: 메인 프로세스에서 렌더러 프로세스로 메시지를 보내는 예시 입니다:

View file

@ -178,7 +178,7 @@ webview.addEventListener("dom-ready", function() {
### `<webview>.loadURL(url[, options])` ### `<webview>.loadURL(url[, options])`
* `url` URL * `url` URL
* `options` Object (optional), 속성들: * `options` Object (optional)
* `httpReferrer` String - HTTP 레퍼러 url. * `httpReferrer` String - HTTP 레퍼러 url.
* `userAgent` String - 요청을 시작한 유저 에이전트. * `userAgent` String - 요청을 시작한 유저 에이전트.
* `extraHeaders` String - "\n"로 구분된 Extra 헤더들. * `extraHeaders` String - "\n"로 구분된 Extra 헤더들.
@ -370,7 +370,7 @@ Service worker에 대한 개발자 도구를 엽니다.
### `webContents.findInPage(text[, options])` ### `webContents.findInPage(text[, options])`
* `text` String - 찾을 컨텐츠, 반드시 공백이 아니여야 합니다. * `text` String - 찾을 컨텐츠, 반드시 공백이 아니여야 합니다.
* `options` Object (Optional) * `options` Object (optional)
* `forward` Boolean - 앞에서부터 검색할지 뒤에서부터 검색할지 여부입니다. 기본값은 * `forward` Boolean - 앞에서부터 검색할지 뒤에서부터 검색할지 여부입니다. 기본값은
`true`입니다. `true`입니다.
* `findNext` Boolean - 작업을 계속 처리할지 첫 요청만 처리할지 여부입니다. 기본값은 * `findNext` Boolean - 작업을 계속 처리할지 첫 요청만 처리할지 여부입니다. 기본값은
@ -557,8 +557,8 @@ Returns:
* `result` Object * `result` Object
* `requestId` Integer * `requestId` Integer
* `finalUpdate` Boolean - 더 많은 응답이 따르는 경우를 표시합니다. * `finalUpdate` Boolean - 더 많은 응답이 따르는 경우를 표시합니다.
* `matches` Integer (Optional) - 일치하는 개수. * `matches` Integer (optional) - 일치하는 개수.
* `selectionArea` Object (Optional) - 첫 일치 부위의 좌표. * `selectionArea` Object (optional) - 첫 일치 부위의 좌표.
[`webContents.findInPage`](web-contents.md#webcontentsfindinpage) 요청의 결과를 [`webContents.findInPage`](web-contents.md#webcontentsfindinpage) 요청의 결과를
사용할 수 있을 때 발생하는 이벤트입니다. 사용할 수 있을 때 발생하는 이벤트입니다.

View file

@ -18,6 +18,34 @@ Node.js의 새로운 기능은 보통 V8 업그레이드에서 가져옵니다.
브라우저에 탑재된 V8을 사용하고 있습니다. 눈부신 새로운 Node.js 버전의 자바스크립트 브라우저에 탑재된 V8을 사용하고 있습니다. 눈부신 새로운 Node.js 버전의 자바스크립트
기능은 보통 이미 Electron에 있습니다. 기능은 보통 이미 Electron에 있습니다.
## 어떻게 웹 페이지 간에 데이터를 공유할 수 있나요?
두 웹페이지 간에 (랜더러 프로세스) 데이터를 공유하려면 간단히 이미 모든 브라우저에서
사용할 수 있는 HTML5 API들을 사용하면 됩니다. 가장 좋은 후보는
[Storage API][storage], [`localStorage`][local-storage],
[`sessionStorage`][session-storage], 그리고 [IndexedDB][indexed-db]가 있습니다.
또는 Electron에서만 사용할 수 있는 IPC 시스템을 사용하여 메인 프로세스의 global
변수에 데이터를 저장한 후 다음과 같이 랜더러 프로세스에서 `remote` 모듈을 사용하여
접근할 수 있습니다:
```javascript
// 메인 프로세스에서
global.sharedObject = {
someProperty: 'default value'
};
```
```javascript
// 첫 번째 페이지에서
require('remote').getGlobal('sharedObject').someProperty = 'new value';
```
```javascript
// 두 번째 페이지에서
console.log(require('remote').getGlobal('sharedObject').someProperty);
```
## 제작한 어플리케이션의 윈도우/트레이가 몇 분 후에나 나타납니다. ## 제작한 어플리케이션의 윈도우/트레이가 몇 분 후에나 나타납니다.
이러한 문제가 발생하는 이유는 보통 윈도우/트레이를 담은 변수에 가비지 컬렉션이 작동해서 이러한 문제가 발생하는 이유는 보통 윈도우/트레이를 담은 변수에 가비지 컬렉션이 작동해서
@ -119,3 +147,7 @@ npm uninstall -g electron
[memory-management]: https://developer.mozilla.org/ko/docs/Web/JavaScript/Memory_Management [memory-management]: https://developer.mozilla.org/ko/docs/Web/JavaScript/Memory_Management
[variable-scope]: https://msdn.microsoft.com/library/bzt2dkta(v=vs.94).aspx [variable-scope]: https://msdn.microsoft.com/library/bzt2dkta(v=vs.94).aspx
[electron-module]: https://www.npmjs.com/package/electron [electron-module]: https://www.npmjs.com/package/electron
[storage]: https://developer.mozilla.org/en-US/docs/Web/API/Storage
[local-storage]: https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
[session-storage]: https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage
[indexed-db]: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API

View file

@ -263,6 +263,33 @@ var window = new BrowserWindow({...});
window.setProgressBar(0.5); window.setProgressBar(0.5);
``` ```
## 작업 표시줄의 아이콘 오버레이 (Windows)
Windows에선 작업 표시줄 버튼에 어플리케이션의 상태를 표시하는 작은 오버레이를 사용할
수 있습니다. MSDN에서 인용하자면 (영문):
> Icon overlays serve as a contextual notification of status, and are intended
> to negate the need for a separate notification area status icon to communicate
> that information to the user. For instance, the new mail status in Microsoft
> Outlook, currently shown in the notification area, can now be indicated
> through an overlay on the taskbar button. Again, you must decide during your
> development cycle which method is best for your application. Overlay icons are
> intended to supply important, long-standing status or notifications such as
> network status, messenger status, or new mail. The user should not be
> presented with constantly changing overlays or animations.
__작업 표시줄 버튼 위의 오버레이:__
![작업 표시줄 버튼 위의 오버레이](https://i-msdn.sec.s-msft.com/dynimg/IC420441.png)
윈도우에 오버레이 아이콘을 설정하려면 [BrowserWindow.setOverlayIcon][setoverlayicon]
API를 사용할 수 있습니다:
```javascript
var window = new BrowserWindow({...});
window.setOverlayIcon('path/to/overlay.png', 'Description for overlay');
```
## 대표 파일 제시 (OS X) ## 대표 파일 제시 (OS X)
OS X는 창에서 대표 파일을 설정할 수 있습니다. 타이틀바에서 파일 아이콘이 있고, 사용자가 OS X는 창에서 대표 파일을 설정할 수 있습니다. 타이틀바에서 파일 아이콘이 있고, 사용자가
@ -287,6 +314,7 @@ window.setDocumentEdited(true);
[clearrecentdocuments]: ../api/app.md#appclearrecentdocuments-os-x-windows [clearrecentdocuments]: ../api/app.md#appclearrecentdocuments-os-x-windows
[setusertaskstasks]: ../api/app.md#appsetusertaskstasks-windows [setusertaskstasks]: ../api/app.md#appsetusertaskstasks-windows
[setprogressbar]: ../api/browser-window.md#winsetprogressbarprogress [setprogressbar]: ../api/browser-window.md#winsetprogressbarprogress
[setoverlayicon]: ../api/browser-window.md#winsetoverlayiconoverlay-description-windows-7
[setrepresentedfilename]: ../api/browser-window.md#winsetrepresentedfilenamefilename-os-x [setrepresentedfilename]: ../api/browser-window.md#winsetrepresentedfilenamefilename-os-x
[setdocumentedited]: ../api/browser-window.md#winsetdocumenteditededited-os-x [setdocumentedited]: ../api/browser-window.md#winsetdocumenteditededited-os-x
[app-registration]: http://msdn.microsoft.com/en-us/library/windows/desktop/ee872121(v=vs.85).aspx [app-registration]: http://msdn.microsoft.com/en-us/library/windows/desktop/ee872121(v=vs.85).aspx

View file

@ -12,7 +12,7 @@ Electron은 웹 페이지의 GUI를 사용합니다. 쉽게 말해 Electron은
### 메인 프로세스 ### 메인 프로세스
Electron은 실행될 때 __메인 프로세스__로 불리는 `package.json``main` 스크립트를 Electron은 실행될 때 __메인 프로세스__ 로 불리는 `package.json``main` 스크립트를
호출합니다. 이 스크립트는 메인 프로세스에서 작동합니다. GUI 컴포넌트를 조작하거나 웹 호출합니다. 이 스크립트는 메인 프로세스에서 작동합니다. GUI 컴포넌트를 조작하거나 웹
페이지 창을 생성할 수 있습니다. 페이지 창을 생성할 수 있습니다.
@ -43,6 +43,7 @@ API를 사용하여 low-level 수준으로 운영체제와 상호작용할 수
Electron에는 메인 프로세스와 랜더러 프로세스 사이에 통신을 할 수 있도록 Electron에는 메인 프로세스와 랜더러 프로세스 사이에 통신을 할 수 있도록
[ipc](../api/ipc-renderer.md) 모듈을 제공하고 있습니다. [ipc](../api/ipc-renderer.md) 모듈을 제공하고 있습니다.
또는 [remote](../api/remote.md) 모듈을 사용하여 RPC 스타일로 통신할 수도 있습니다. 또는 [remote](../api/remote.md) 모듈을 사용하여 RPC 스타일로 통신할 수도 있습니다.
또한 FAQ에서 [다양한 객체를 공유하는 방법](share-data)도 소개하고 있습니다.
## 첫번째 Electron 앱 만들기 ## 첫번째 Electron 앱 만들기
@ -211,3 +212,5 @@ $ cd electron-quick-start
# 어플리케이션의 종속성 모듈을 설치한 후 실행합니다 # 어플리케이션의 종속성 모듈을 설치한 후 실행합니다
$ npm install && npm start $ npm install && npm start
``` ```
[share-data]: ../faq/electron-faq.md#어떻게-웹-페이지-간에-데이터를-공유할-수-있나요