📝 Update Korean docs as upstream
[ci skip]
This commit is contained in:
parent
4a40369b6d
commit
21f0e65735
4 changed files with 259 additions and 145 deletions
|
@ -647,6 +647,33 @@ dock 아이콘을 표시합니다.
|
|||
|
||||
dock 아이콘의 `image`를 설정합니다.
|
||||
|
||||
### `app.launcher.setBadgeCount(count)` _Linux_
|
||||
* `count` Integer
|
||||
|
||||
Unity 런처에서 앱 아이콘 옆에 표시될 숫자를 설정합니다. `0`으로 설정하면 뱃지를
|
||||
숨깁니다.
|
||||
|
||||
**참고:** 이 기능은 현재 Ubuntu Unity에서만 사용할 수 있습니다. 다른 환경에서 이
|
||||
함수를 호출하는 것은 아무런 효과가 없습니다.
|
||||
|
||||
**참고:** 이 기능을 사용하려면 `package.json`의 `desktopName` 필드에 `.desktop` 파일 이름을 설정해야 합니다. 기본적으로 패키징된 애플리케이션의 `app.getName().desktop`을 사용합니다.
|
||||
|
||||
### `app.launcher.getBadgeCount()` _Linux_
|
||||
|
||||
런처 아이콘 옆 배지의 카운터에 표시된 현재 값을 반환합니다.
|
||||
|
||||
**참고:** `setBadgeCount`가 Ubuntu Unity에서만 지원하기 때문에, 애플리케이션이 다른
|
||||
플랫폼에서 돌아가고 있다면 이 메서드는 `0`을 반환합니다.
|
||||
|
||||
### `app.launcher.isUnityRunning()` _Linux_
|
||||
|
||||
현재 데스크톱 환경이 Unity인지 여부를 반환합니다. Unity가 맞다면 `true`를 반환합니다.
|
||||
|
||||
### `app.launcher.isCounterBadgeAvailable()` _Linux_
|
||||
|
||||
현재 데스크톱 환경이 애플리케이션 아이콘 카운터 뱃지를 사용할 수 있는지 여부를
|
||||
반환합니다. 사용할 수 있다면 `true`를 반환합니다.
|
||||
|
||||
[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
|
||||
[app-user-model-id]: https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx
|
||||
|
|
|
@ -62,6 +62,38 @@ win.loadURL('https://github.com')
|
|||
참고로 `ready-to-show` 이벤트를 사용하더라도 어플리케이션을 네이티브 느낌이 나도록
|
||||
하기 위해 `backgroundColor`도 같이 설정하는 것을 권장합니다.
|
||||
|
||||
## 부모와 자식 윈도우
|
||||
|
||||
`parent` 옵션을 사용하면 자식 윈도우를 만들 수 있습니다:
|
||||
|
||||
```javascript
|
||||
let top = new BrowserWindow()
|
||||
let child = new BrowserWindow({parent: top})
|
||||
```
|
||||
|
||||
`child` 윈도우는 언제나 `top` 윈도우의 상위에 표시됩니다.
|
||||
|
||||
### 모달 윈도우
|
||||
|
||||
모달 윈도우는 부모 윈도우를 비활성화 시키는 자식 윈도우입니다. 모달 윈도우를 만드려면 `parent`, `modal` 옵션을 동시에 설정해야 합니다:
|
||||
|
||||
```javascript
|
||||
let child = new BrowserWindow({parent: top, modal: true, show: false})
|
||||
child.loadURL('https://github.com')
|
||||
child.once('ready-to-show', () => {
|
||||
child.show()
|
||||
})
|
||||
```
|
||||
|
||||
### 플랫폼별 특이사항
|
||||
|
||||
* On macOS the child windows will keep the relative position to parent window
|
||||
when parent window moves, while on Windows and Linux child windows will not
|
||||
move.
|
||||
* On Windows it is not supported to change parent window dynamically.
|
||||
* On Linux the type of modal windows will be changed to `dialog`.
|
||||
* On Linux many desktop environments do not support hiding a modal window.
|
||||
|
||||
## Class: BrowserWindow
|
||||
|
||||
`BrowserWindow`는 [EventEmitter](http://nodejs.org/api/events.html#events_class_events_eventemitter)를
|
||||
|
@ -125,6 +157,9 @@ On Windows it is
|
|||
* `show` Boolean - 윈도우가 생성되면 보여줄지 여부. 기본값은 `true`입니다.
|
||||
* `frame` Boolean - `false`로 지정하면 창을 [Frameless Window](frameless-window.md)
|
||||
형태로 생성합니다. 기본값은 `true`입니다.
|
||||
* `parent` BrowserWindow - 부모 윈도우를 설정합니다. 기본 값은 `null`입니다.
|
||||
* `modal` Boolean - 이 윈도우가 모달 윈도우인지 여부를 설정합니다. 이 옵션은 자식
|
||||
윈도우에서만 작동합니다. 기본값은 `false`입니다.
|
||||
* `acceptFirstMouse` Boolean - 윈도우가 비활성화 상태일 때 내부 콘텐츠 클릭 시
|
||||
활성화 되는 동시에 단일 mouse-down 이벤트를 발생시킬지 여부. 기본값은 `false`입니다.
|
||||
* `disableAutoHideCursor` Boolean - 타이핑중 자동으로 커서를 숨길지 여부. 기본값은
|
||||
|
@ -528,6 +563,10 @@ let win = new BrowserWindow({width: 800, height: 600});
|
|||
|
||||
윈도우가 사용자에게 표시되고 있는지 여부를 반환합니다.
|
||||
|
||||
### `win.isModal()`
|
||||
|
||||
현재 윈도우가 모달 윈도우인지 여부를 반환합니다.
|
||||
|
||||
### `win.maximize()`
|
||||
|
||||
윈도우를 최대화 시킵니다.
|
||||
|
@ -1008,4 +1047,19 @@ Windows에선 WDA_MONITOR와 함께 SetWindowDisplayAffinity를 호출합니다.
|
|||
|
||||
윈도우가 포커스될 수 있는지 여부를 변경합니다.
|
||||
|
||||
### `win.setParentWindow(parent)` _Linux_ _macOS_
|
||||
|
||||
* `parent` BrowserWindow
|
||||
|
||||
`parent` 인수를 현재 윈도우의 부모 윈도우로 설정합니다. `null`로 설정하면
|
||||
현재 윈도우를 상위 윈도우로 전환합니다.
|
||||
|
||||
### `win.getParentWindow()`
|
||||
|
||||
모든 부모 윈도우를 반환합니다.
|
||||
|
||||
### `win.getChildWindows()`
|
||||
|
||||
모든 자식 윈도우를 반환합니다.
|
||||
|
||||
[blink-feature-string]: https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
> 네이티브 애플리케이션 메뉴와 컨텍스트 메뉴에 아이템을 추가합니다.
|
||||
|
||||
[`menu`](menu.md)에서 예시를 확인할 수 있습니다.
|
||||
[`Menu`](menu.md)에서 예시를 확인할 수 있습니다.
|
||||
|
||||
## Class: MenuItem
|
||||
|
||||
|
@ -12,8 +12,8 @@
|
|||
|
||||
* `options` Object
|
||||
* `click` Function - 메뉴 아이템이 클릭될 때 `click(menuItem, browserWindow,
|
||||
event)` 형태로 호출 되는 콜백 함수
|
||||
* `role` String - 메뉴 아이템의 액션을 정의합니다; 이 속성을 지정하면 `click`
|
||||
event)` 형태로 호출 되는 콜백 함수.
|
||||
* `role` String - 메뉴 아이템의 액션을 정의합니다. 이 속성을 지정하면 `click`
|
||||
속성이 무시됩니다.
|
||||
* `type` String - `MenuItem`의 타입 `normal`, `separator`, `submenu`,
|
||||
`checkbox` 또는 `radio`를 사용할 수 있습니다. 만약 값이 `Menu`가 아니면
|
||||
|
@ -72,20 +72,28 @@ macOS에서의 `role`은 다음 값을 추가로 가질 수 있습니다:
|
|||
macOS에서는 `role`을 지정할 때, `label`과 `accelerator`만 MenuItem에 효과가
|
||||
적용되도록 변경되며, 다른 옵션들은 모두 무시됩니다.
|
||||
|
||||
## Instance Properties
|
||||
### Instance Properties
|
||||
|
||||
다음 속성들은 존재하는 `MenuItem`에서 계속 변경될 수 있습니다:
|
||||
다음은 `MenuItem`의 인스턴스에서 사용할 수 있는 속성입니다:
|
||||
|
||||
* `enabled` Boolean
|
||||
* `visible` Boolean
|
||||
* `checked` Boolean
|
||||
#### `menuItem.enabled`
|
||||
|
||||
이 속성들의 의미는 위 옵션에서 설명한 것과 같습니다.
|
||||
아이템이 활성화되어있는지 여부를 표시하는 Boolean 값입니다. 이 속성은 동적으로 변경될
|
||||
수 있습니다.
|
||||
|
||||
`checkbox` 메뉴 아이템은 선택될 때 해당 아이템의 `checked` 속성을 통해 활성화 그리고
|
||||
비활성화 상태인지를 표시합니다. 또한 `click` 함수를 지정하여 추가적인 작업을 할 수도
|
||||
있습니다.
|
||||
#### `menuItem.visible`
|
||||
|
||||
`radio` 메뉴 아이템은 클릭되었을 때 `checked` 속성을 활성화 합니다. 그리고 같은
|
||||
메뉴의 인접한 모든 다른 아이템은 비활성화됩니다. 또한 `click` 함수를 지정하여 추가적인
|
||||
작업을 할 수도 있습니다.
|
||||
아이템이 보여지고있는지 여부를 표시하는 Boolean 값입니다. 이 속성은 동적으로 변경될
|
||||
수 있습니다.
|
||||
|
||||
#### `menuItem.checked`
|
||||
|
||||
아이템이 선택되어있는지 여부를 반환하는 Boolean 값입니다. 이 속성은 동적으로 변경될
|
||||
수 있습니다.
|
||||
|
||||
`checkbox` 메뉴 아이템은 선택되면 `checked` 속성을 토글합니다.
|
||||
|
||||
`radio` 메뉴 아이템은 클릭되었을 때 `checked` 속성을 활성화 합니다. 그리고
|
||||
같은 메뉴의 모든 인접한 아이템에 대한 속성이 꺼집니다.
|
||||
|
||||
추가적인 작업을 위해 `click` 함수를 추가할 수도 있습니다.
|
||||
|
|
|
@ -4,16 +4,15 @@
|
|||
|
||||
`session` 모듈은 새로운 `Session` 객체를 만드는데 사용할 수 있습니다.
|
||||
|
||||
또한 존재하는 [`BrowserWindow`](browser-window.md)의
|
||||
[`webContents`](web-contents.md)에서 `session` 속성으로 접근할 수도 있습니다.
|
||||
또한 [`WebContents`](web-contents.md)의 `session` 속성이나 `session` 모듈을 통해 현재 존재하는 페이지의 `session`에 접근할 수 있습니다.
|
||||
|
||||
```javascript
|
||||
const {BrowserWindow} = require('electron');
|
||||
const {session, BrowserWindow} = require('electron')
|
||||
|
||||
let win = new BrowserWindow({width: 800, height: 600});
|
||||
win.loadURL('http://github.com');
|
||||
let win = new BrowserWindow({width: 800, height: 600})
|
||||
win.loadURL('http://github.com')
|
||||
|
||||
let ses = win.webContents.session;
|
||||
let ses = win.webContents.session
|
||||
```
|
||||
|
||||
## Methods
|
||||
|
@ -75,92 +74,7 @@ session.defaultSession.on('will-download', (event, item, webContents) => {
|
|||
|
||||
### Instance Methods
|
||||
|
||||
`Session` 객체는 다음과 같은 메서드와 속성을 가지고 있습니다:
|
||||
|
||||
#### `ses.cookies`
|
||||
|
||||
`cookies` 속성은 쿠키를 조작하는 방법을 제공합니다. 예를 들어 다음과 같이 할 수
|
||||
있습니다:
|
||||
|
||||
```javascript
|
||||
// 모든 쿠키를 요청합니다.
|
||||
session.defaultSession.cookies.get({}, (error, cookies) => {
|
||||
console.log(cookies);
|
||||
});
|
||||
|
||||
// url에 관련된 쿠키를 모두 가져옵니다.
|
||||
session.defaultSession.cookies.get({url: 'http://www.github.com'}, (error, cookies) => {
|
||||
console.log(cookies);
|
||||
});
|
||||
|
||||
// 지정한 쿠키 데이터를 설정합니다.
|
||||
// 동일한 쿠키가 있으면 해당 쿠키를 덮어씁니다.
|
||||
const cookie = {url: 'http://www.github.com', name: 'dummy_name', value: 'dummy'};
|
||||
session.defaultSession.cookies.set(cookie, (error) => {
|
||||
if (error)
|
||||
console.error(error);
|
||||
});
|
||||
```
|
||||
|
||||
#### `ses.cookies.get(filter, callback)`
|
||||
|
||||
* `filter` Object
|
||||
* `url` String (optional) - `url`에 해당하는 쿠키를 취득합니다. 이 속성을
|
||||
생략하면 모든 url에서 찾습니다.
|
||||
* `name` String (optional) - 쿠키의 이름입니다.
|
||||
* `domain` String (optional) - 도메인 또는 서브 도메인에 일치하는 쿠키를
|
||||
취득합니다.
|
||||
* `path` String (optional) - `path`에 일치하는 쿠키를 취득합니다.
|
||||
* `secure` Boolean (optional) - 보안 속성에 따라 쿠키를 필터링합니다.
|
||||
* `session` Boolean (optional) - 세션 또는 지속성 쿠키를 필터링합니다.
|
||||
* `callback` Function
|
||||
|
||||
`details` 객체에서 묘사한 모든 쿠키를 요청합니다. 모든 작업이 끝나면 `callback`이
|
||||
`callback(error, cookies)` 형태로 호출됩니다.
|
||||
|
||||
`cookies`는 `cookie` 객체의 배열입니다.
|
||||
|
||||
* `cookie` Object
|
||||
* `name` String - 쿠키의 이름.
|
||||
* `value` String - 쿠키의 값.
|
||||
* `domain` String - 쿠키의 도메인.
|
||||
* `hostOnly` String - 쿠키가 호스트 전용인가에 대한 여부.
|
||||
* `path` String - 쿠키의 경로.
|
||||
* `secure` Boolean - 쿠키가 안전한 것으로 표시되는지에 대한 여부.
|
||||
* `httpOnly` Boolean - 쿠키가 HTTP로만 표시되는지에 대한 여부.
|
||||
* `session` Boolean - 쿠키가 세션 쿠키 또는 만료일이 있는 영구 쿠키인지에 대한
|
||||
여부.
|
||||
* `expirationDate` Double - (Option) UNIX 시간으로 표시되는 쿠키의 만료일에
|
||||
대한 초 단위 시간. 세션 쿠키는 지원되지 않음.
|
||||
|
||||
#### `ses.cookies.set(details, callback)`
|
||||
|
||||
* `details` Object
|
||||
* `url` String - 쿠키에 대한 `url` 링크.
|
||||
* `name` String - 쿠키의 이름입니다. 기본적으로 비워두면 생략됩니다.
|
||||
* `value` String - 쿠키의 값입니다. 기본적으로 비워두면 생략됩니다.
|
||||
* `domain` String - 쿠키의 도메인입니다. 기본적으로 비워두면 생략됩니다.
|
||||
* `path` String - 쿠키의 경로입니다. 기본적으로 비워두면 생략됩니다.
|
||||
* `secure` Boolean - 쿠키가 안전한 것으로 표시되는지에 대한 여부입니다. 기본값은
|
||||
false입니다.
|
||||
* `session` Boolean - 쿠키가 Http 전용으로 표시되는지에 대한 여부입니다. 기본값은
|
||||
false입니다.
|
||||
* `expirationDate` Double (optional) - UNIX 시간으로 표시되는 쿠키의 만료일에
|
||||
대한 초 단위 시간입니다. 생략되면 쿠키가 세션 쿠기가 되며 세션 사이에 유지되지
|
||||
않게 됩니다.
|
||||
* `callback` Function
|
||||
|
||||
`details` 객체에 따라 쿠키를 설정합니다. 작업이 완료되면 `callback`이
|
||||
`callback(error)` 형태로 호출됩니다.
|
||||
|
||||
#### `ses.cookies.remove(url, name, callback)`
|
||||
|
||||
* `url` String - 쿠키와 관련된 URL입니다.
|
||||
* `name` String - 지울 쿠키의 이름입니다.
|
||||
* `callback` Function
|
||||
|
||||
`url`과 `name`에 일치하는 쿠키를 삭제합니다. 작업이 완료되면 `callback`이
|
||||
`callback()` 형식으로 호출됩니다.
|
||||
`Session` 객체는 다음과 같은 메서드를 가지고 있습니다:
|
||||
|
||||
#### `ses.getCacheSize(callback)`
|
||||
|
||||
|
@ -354,16 +268,141 @@ session.defaultSession.allowNTLMCredentialsForDomains('*')
|
|||
|
||||
#### `ses.getUserAgent()`
|
||||
|
||||
현재 세션에 대한 유저 에이전트를 표현하는 `String`을 반환합니다.
|
||||
현재 세션의 유저 에이전트를 표현하는 `String`을 반환합니다.
|
||||
|
||||
### Instance Properties
|
||||
|
||||
다음은 `Session` 인스턴스에서 사용할 수 있는 속성들입니다:
|
||||
|
||||
#### `ses.cookies`
|
||||
|
||||
현재 세션의 `Cookies` 클래스 인스턴스를 반환합니다.
|
||||
|
||||
#### `ses.webRequest`
|
||||
|
||||
`webRequest` API는 생명주기의 다양한 단계에 맞춰 요청 콘텐츠를 가로채거나 변경할 수
|
||||
있도록 합니다.
|
||||
현재 세션의 `WebRequest` 클래스 인스턴스를 반환합니다.
|
||||
|
||||
각 API는 `filter`와 `listener`를 선택적으로 받을 수 있습니다. `listener`는 API의
|
||||
이벤트가 발생했을 때 `listener(details)` 형태로 호출되며 `defails`는 요청을 묘사하는
|
||||
객체입니다. `listener`에 `null`을 전달하면 이벤트 수신을 중지합니다.
|
||||
#### `ses.protocol`
|
||||
|
||||
현재 세션의 [protocol](protocol.md) 모듈 인스턴스를 반환합니다.
|
||||
|
||||
```javascript
|
||||
const {app, session} = require('electron')
|
||||
const path = require('path')
|
||||
|
||||
app.on('ready', function () {
|
||||
const protocol = session.fromPartition(partitionName).protocol
|
||||
protocol.registerFileProtocol('atom', function (request, callback) {
|
||||
var url = request.url.substr(7)
|
||||
callback({path: path.normalize(__dirname + '/' + url)})
|
||||
}, function (error) {
|
||||
if (error)
|
||||
console.error('Failed to register protocol')
|
||||
})
|
||||
})
|
||||
```
|
||||
|
||||
## Class: Cookies
|
||||
|
||||
`Cookies` 클래스는 쿠키를 탐색하고 조작하는 방법을 제공합니다. `Cookies` 클래스의
|
||||
인스턴스는 반드시 `Session` 클래스의 `cookies` 속성에서 접근해야 합니다.
|
||||
|
||||
예를 들어:
|
||||
|
||||
```javascript
|
||||
// 모든 쿠키를 요청합니다.
|
||||
session.defaultSession.cookies.get({}, (error, cookies) => {
|
||||
console.log(cookies);
|
||||
});
|
||||
|
||||
// url에 관련된 쿠키를 모두 가져옵니다.
|
||||
session.defaultSession.cookies.get({url: 'http://www.github.com'}, (error, cookies) => {
|
||||
console.log(cookies);
|
||||
});
|
||||
|
||||
// 지정한 쿠키 데이터를 설정합니다.
|
||||
// 동일한 쿠키가 있으면 해당 쿠키를 덮어씁니다.
|
||||
const cookie = {url: 'http://www.github.com', name: 'dummy_name', value: 'dummy'};
|
||||
session.defaultSession.cookies.set(cookie, (error) => {
|
||||
if (error)
|
||||
console.error(error);
|
||||
});
|
||||
```
|
||||
|
||||
### Instance Methods
|
||||
|
||||
다음은 `Cookies` 객체에서 사용할 수 있는 메서드들입니다:
|
||||
|
||||
#### `ses.cookies.get(filter, callback)`
|
||||
|
||||
* `filter` Object
|
||||
* `url` String (optional) - `url`에 해당하는 쿠키를 취득합니다. 이 속성을
|
||||
생략하면 모든 url에서 찾습니다.
|
||||
* `name` String (optional) - 쿠키의 이름입니다.
|
||||
* `domain` String (optional) - 도메인 또는 서브 도메인에 일치하는 쿠키를
|
||||
취득합니다.
|
||||
* `path` String (optional) - `path`에 일치하는 쿠키를 취득합니다.
|
||||
* `secure` Boolean (optional) - 보안 속성에 따라 쿠키를 필터링합니다.
|
||||
* `session` Boolean (optional) - 세션 또는 지속성 쿠키를 필터링합니다.
|
||||
* `callback` Function
|
||||
|
||||
`details` 객체에서 묘사한 모든 쿠키를 요청합니다. 모든 작업이 끝나면 `callback`이
|
||||
`callback(error, cookies)` 형태로 호출됩니다.
|
||||
|
||||
`cookies`는 `cookie` 객체의 배열입니다.
|
||||
|
||||
* `cookie` Object
|
||||
* `name` String - 쿠키의 이름.
|
||||
* `value` String - 쿠키의 값.
|
||||
* `domain` String - 쿠키의 도메인.
|
||||
* `hostOnly` String - 쿠키가 호스트 전용인가에 대한 여부.
|
||||
* `path` String - 쿠키의 경로.
|
||||
* `secure` Boolean - 쿠키가 안전한 것으로 표시되는지에 대한 여부.
|
||||
* `httpOnly` Boolean - 쿠키가 HTTP로만 표시되는지에 대한 여부.
|
||||
* `session` Boolean - 쿠키가 세션 쿠키 또는 만료일이 있는 영구 쿠키인지에 대한
|
||||
여부.
|
||||
* `expirationDate` Double - (Option) UNIX 시간으로 표시되는 쿠키의 만료일에
|
||||
대한 초 단위 시간. 세션 쿠키는 지원되지 않음.
|
||||
|
||||
#### `ses.cookies.set(details, callback)`
|
||||
|
||||
* `details` Object
|
||||
* `url` String - 쿠키에 대한 `url` 링크.
|
||||
* `name` String - 쿠키의 이름입니다. 기본적으로 비워두면 생략됩니다.
|
||||
* `value` String - 쿠키의 값입니다. 기본적으로 비워두면 생략됩니다.
|
||||
* `domain` String - 쿠키의 도메인입니다. 기본적으로 비워두면 생략됩니다.
|
||||
* `path` String - 쿠키의 경로입니다. 기본적으로 비워두면 생략됩니다.
|
||||
* `secure` Boolean - 쿠키가 안전한 것으로 표시되는지에 대한 여부입니다. 기본값은
|
||||
false입니다.
|
||||
* `httpOnly` Boolean - 쿠키가 Http 전용으로 표시되는지에 대한 여부입니다. 기본값은
|
||||
false입니다.
|
||||
* `expirationDate` Double (optional) - UNIX 시간으로 표시되는 쿠키의 만료일에
|
||||
대한 초 단위 시간입니다. 생략되면 쿠키가 세션 쿠기가 되며 세션 사이에 유지되지
|
||||
않게 됩니다.
|
||||
* `callback` Function
|
||||
|
||||
`details` 객체에 따라 쿠키를 설정합니다. 작업이 완료되면 `callback`이
|
||||
`callback(error)` 형태로 호출됩니다.
|
||||
|
||||
#### `ses.cookies.remove(url, name, callback)`
|
||||
|
||||
* `url` String - 쿠키와 관련된 URL입니다.
|
||||
* `name` String - 지울 쿠키의 이름입니다.
|
||||
* `callback` Function
|
||||
|
||||
`url`과 `name`에 일치하는 쿠키를 삭제합니다. 작업이 완료되면 `callback`이
|
||||
`callback()` 형식으로 호출됩니다.
|
||||
|
||||
## Class: WebRequest
|
||||
|
||||
`WebRequest` 클래스는 생명 주기의 다양한 단계에서 요청의 콘텐츠를 조작하거나 가로채는
|
||||
방법을 제공합니다. `WebRequest` 클래스는 반드시 `Session` 클래스의 `webRequest`
|
||||
속성에서 접근해야 합니다.
|
||||
|
||||
`WebRequest`의 메서드는 선택적인 `filter`와 `listener` 속성을 허용하며 `listener`는
|
||||
API의 이벤트가 발생했을 때 `listener(details)` 형식으로 호출되고, `details`는 요청에
|
||||
관한 내용을 표현하는 객체입니다. `listener`에 `null`을 전달하면 이벤트의 구독을
|
||||
해제합니다.
|
||||
|
||||
`filter`는 `urls` 속성을 가진 객체입니다. 이 속성은 URL 규칙의 배열이며 URL 규칙에
|
||||
일치하지 않는 요청을 모두 거르는데 사용됩니다. 만약 `filter`가 생략되면 모든 요청을
|
||||
|
@ -372,19 +411,25 @@ session.defaultSession.allowNTLMCredentialsForDomains('*')
|
|||
어떤 `listener`의 이벤트들은 `callback`을 같이 전달하는데, 이벤트 처리시
|
||||
`listener`의 작업을 완료한 후 `response` 객체를 포함하여 호출해야 합니다.
|
||||
|
||||
다음은 요청에 `User-Agent` 헤더를 추가하는 예시입니다:
|
||||
|
||||
```javascript
|
||||
// 다음 url에 대한 User Agent를 조작합니다.
|
||||
const filter = {
|
||||
urls: ['https://*.github.com/*', '*://electron.github.io']
|
||||
};
|
||||
}
|
||||
|
||||
session.defaultSession.webRequest.onBeforeSendHeaders(filter, (details, callback) => {
|
||||
details.requestHeaders['User-Agent'] = "MyAgent";
|
||||
callback({cancel: false, requestHeaders: details.requestHeaders});
|
||||
});
|
||||
details.requestHeaders['User-Agent'] = "MyAgent"
|
||||
callback({cancel: false, requestHeaders: details.requestHeaders})
|
||||
})
|
||||
```
|
||||
|
||||
#### `ses.webRequest.onBeforeRequest([filter, ]listener)`
|
||||
### Instance Methods
|
||||
|
||||
다음은 `WebRequest` 객체에서 사용할 수 있는 메서드들입니다:
|
||||
|
||||
#### `webRequest.onBeforeRequest([filter, ]listener)`
|
||||
|
||||
* `filter` Object
|
||||
* `listener` Function
|
||||
|
@ -413,7 +458,7 @@ session.defaultSession.webRequest.onBeforeSendHeaders(filter, (details, callback
|
|||
* `redirectURL` String (optional) - 원래 요청은 전송과 완료가 방지되지만 이
|
||||
속성을 지정하면 해당 URL로 리다이렉트됩니다.
|
||||
|
||||
#### `ses.webRequest.onBeforeSendHeaders([filter, ]listener)`
|
||||
#### `webRequest.onBeforeSendHeaders([filter, ]listener)`
|
||||
|
||||
* `filter` Object
|
||||
* `listener` Function
|
||||
|
@ -438,7 +483,7 @@ HTTP 요청을 보내기 전 요청 헤더를 사용할 수 있을 때 `listener
|
|||
* `requestHeaders` Object (optional) - 이 속성이 제공되면, 요청은 이 헤더로
|
||||
만들어 집니다.
|
||||
|
||||
#### `ses.webRequest.onSendHeaders([filter, ]listener)`
|
||||
#### `webRequest.onSendHeaders([filter, ]listener)`
|
||||
|
||||
* `filter` Object
|
||||
* `listener` Function
|
||||
|
@ -455,7 +500,7 @@ HTTP 요청을 보내기 전 요청 헤더를 사용할 수 있을 때 `listener
|
|||
* `timestamp` Double
|
||||
* `requestHeaders` Object
|
||||
|
||||
#### `ses.webRequest.onHeadersReceived([filter, ]listener)`
|
||||
#### `webRequest.onHeadersReceived([filter, ]listener)`
|
||||
|
||||
* `filter` Object
|
||||
* `listener` Function
|
||||
|
@ -484,7 +529,7 @@ HTTP 요청을 보내기 전 요청 헤더를 사용할 수 있을 때 `listener
|
|||
변경하기 위해 반드시 지정되어야 합니다. 그렇지 않은 경우, 기존의 응답 헤더의 상태가
|
||||
사용됩니다.
|
||||
|
||||
#### `ses.webRequest.onResponseStarted([filter, ]listener)`
|
||||
#### `webRequest.onResponseStarted([filter, ]listener)`
|
||||
|
||||
* `filter` Object
|
||||
* `listener` Function
|
||||
|
@ -503,7 +548,7 @@ HTTP 요청을 보내기 전 요청 헤더를 사용할 수 있을 때 `listener
|
|||
* `statusCode` Integer
|
||||
* `statusLine` String
|
||||
|
||||
#### `ses.webRequest.onBeforeRedirect([filter, ]listener)`
|
||||
#### `webRequest.onBeforeRedirect([filter, ]listener)`
|
||||
|
||||
* `filter` Object
|
||||
* `listener` Function
|
||||
|
@ -523,7 +568,7 @@ HTTP 요청을 보내기 전 요청 헤더를 사용할 수 있을 때 `listener
|
|||
* `fromCache` Boolean
|
||||
* `responseHeaders` Object
|
||||
|
||||
#### `ses.webRequest.onCompleted([filter, ]listener)`
|
||||
#### `webRequest.onCompleted([filter, ]listener)`
|
||||
|
||||
* `filter` Object
|
||||
* `listener` Function
|
||||
|
@ -541,7 +586,7 @@ HTTP 요청을 보내기 전 요청 헤더를 사용할 수 있을 때 `listener
|
|||
* `statusCode` Integer
|
||||
* `statusLine` String
|
||||
|
||||
#### `ses.webRequest.onErrorOccurred([filter, ]listener)`
|
||||
#### `webRequest.onErrorOccurred([filter, ]listener)`
|
||||
|
||||
* `filter` Object
|
||||
* `listener` Function
|
||||
|
@ -556,23 +601,3 @@ HTTP 요청을 보내기 전 요청 헤더를 사용할 수 있을 때 `listener
|
|||
* `timestamp` Double
|
||||
* `fromCache` Boolean
|
||||
* `error` String - 에러 설명.
|
||||
|
||||
#### `ses.protocol`
|
||||
|
||||
현재 세션의 [protocol](protocol.md) 모듈 인스턴스를 반환합니다.
|
||||
|
||||
```javascript
|
||||
const {app, session} = require('electron')
|
||||
const path = require('path')
|
||||
|
||||
app.on('ready', function () {
|
||||
const protocol = session.fromPartition(partitionName).protocol
|
||||
protocol.registerFileProtocol('atom', function (request, callback) {
|
||||
var url = request.url.substr(7)
|
||||
callback({path: path.normalize(__dirname + '/' + url)})
|
||||
}, function (error) {
|
||||
if (error)
|
||||
console.error('Failed to register protocol')
|
||||
})
|
||||
})
|
||||
```
|
||||
|
|
Loading…
Add table
Reference in a new issue