새로운 컨텍스트 메뉴의 제어가 필요할 때 발생하는 이벤트입니다.
+### Event: 'select-bluetooth-device'
+
+Returns:
+
+* `event` Event
+* `devices` [Objects]
+ * `deviceName` String
+ * `deviceId` String
+* `callback` Function
+ * `deviceId` String
+
+`navigator.bluetooth.requestDevice`의 호출에 의해 블루투스 기기가 선택되어야 할 때
+발생하는 이벤트입니다. `navigator.bluetooth` API를 사용하려면 `webBluetooth`가
+활성화되어 있어야 합니다. 만약 `event.preventDefault`이 호출되지 않으면, 첫 번째로
+사용 가능한 기기가 선택됩니다. `callback`은 반드시 선택될 `deviceId`와 함께
+호출되어야 하며, 빈 문자열을 `callback`에 보내면 요청이 취소됩니다.
+
+```javascript
+app.commandLine.appendSwitch('enable-web-bluetooth')
+
+app.on('ready', () => {
+ webContents.on('select-bluetooth-device', (event, deviceList, callback) => {
+ event.preventDefault()
+ let result = deviceList.find((device) => {
+ return device.deviceName === 'test'
+ })
+ if (!result) {
+ callback('')
+ } else {
+ callback(result.deviceId)
+ }
+ })
+})
+```
+
## Instance Methods
`webContents`객체는 다음과 같은 인스턴스 메서드들을 가지고 있습니다.
이 툴을 사용하면 자동으로 `.gyp`파일을 수정하고 다시 빌드합니다. 그리고 어플리케이션의
네이티브 Node 모듈 또한 새로운 실행파일 이름으로 일치시킵니다.
+
+### Electron 커스텀 포크 만들기
+
+Electron의 커스텀 포크를 만드는 것은 거의 확실히 앱을 만드는데 있어서 필요한 작업이
+아닐 수 있으며, 심지어 "제품 등급"의 어플리케이션이라도 필요하지 않습니다.
+`electron-packager` 또는 `electron-builder`와 같은 도구를 사용하면 다른 특별한
+과정 없이 Electron을 "Rebrand" 할 수 있습니다.
+
+업스트림 단에서 추가될 수 없는 기능이나 이미 공식 버전에서 거부된 기능을 Electron에
+직접적으로 패치하기 위해 커스텀 C++를 추가해야 한다면 Electron을 포크해야 합니다.
+Electron의 개발자로써, Electron을 매우 많은 시나리오에서도 작동하도록 만들려고
+합니다. 따라서 가능한한 변경 사항을 공식 버전의 Electron에 추가할 수 있도록 시도해
+주길 바라며, 당신에겐 아주 아주 쉬운 작업일 것이고 이러한 당신의 도움에 대해 감사하게
+생각합니다.
+
+#### surf-build와 함께 커스텀 릴리즈 만들기
+
+1. npm을 통해 [Surf](https://github.com/surf-build/surf)를 설치합니다:
+ `npm install -g surf-build@latest`
+
+2. 새로운 S3 bucket을 만들고 다음과 같은 빈 디렉토리 구조를 만듭니다:
+
+```
+- atom-shell/
+ - symbols/
+ - dist/
+```
+
+3. 다음의 환경 변수들을 설정합니다:
+
+* `ELECTRON_GITHUB_TOKEN` - GitHub에 릴리즈를 만들 수 있는 토큰.
+* `ELECTRON_S3_ACCESS_KEY`, `ELECTRON_S3_BUCKET`, `ELECTRON_S3_SECRET_KEY` -
+ node.js 헤더 뿐만 아니라 심볼을 업로드할 장소.
+* `ELECTRON_RELEASE` - `true`로 지정하고 업로드 부분이 실행되면, 설정되지 않은
+ 부분을 남기고 `surf-build`가 CI-type 확인을 실행합니다. 모든 pull request를
+ 실행할 때 적합합니다.
+* `CI` - `true` 또는 다른 것을 지정하면 실패합니다.
+* `GITHUB_TOKEN` - `ELECTRON_GITHUB_TOKEN`와 같게 설정
+* `SURF_TEMP` - Windows에선 `C:\Temp`로 설정하면 긴 경로 문제를 해결할 수 있습니다.
+* `TARGET_ARCH` - `ia32` 또는 `x64`를 지정.
+
+4. Electron에 기여를 하는 기여자라면, _반드시_ `script/upload.py`에서 포크를 위해
+ `ELECTRON_REPO`를 설정해야 합니다. (`MYORG/electron`)
+
+5. `surf-build -r https://github.com/MYORG/electron -s YOUR_COMMIT -n 'surf-PLATFORM-ARCH'`
+
+6. 빌드가 완료될 때까지 아주 아주 긴 시간을 기다립니다.