Skip to main content

BrowserWindow

브라우저 창을 생성하고 제어한다.

프로세스: Main

이 모듈은 app 모듈의 ready 이벤트가 발생하기 전에는 사용할 수 없다.

// 메인 프로세스에서
const { BrowserWindow } = require('electron')

const win = new BrowserWindow({ width: 800, height: 600 })

// 원격 URL 로드
win.loadURL('https://github.com')

// 또는 로컬 HTML 파일 로드
win.loadFile('index.html')

윈도우 커스터마이징

BrowserWindow 클래스는 앱 윈도우의 외관과 동작을 수정할 수 있는 다양한 방법을 제공한다. 더 자세한 내용은 윈도우 커스터마이징 튜토리얼을 참고한다.

윈도우를 자연스럽게 표시하기

페이지를 윈도우에 직접 로드할 때, 사용자는 페이지가 점진적으로 로드되는 과정을 볼 수 있다. 이는 네이티브 앱에서는 좋지 않은 사용자 경험이다. 시각적인 깜빡임 없이 윈도우를 표시하려면, 상황에 따라 두 가지 해결 방법이 있다.

ready-to-show 이벤트 활용하기

페이지를 로드하는 동안, 윈도우가 아직 보이지 않은 상태에서 렌더러 프로세스가 페이지를 처음으로 렌더링하면 ready-to-show 이벤트가 발생한다. 이 이벤트 이후에 윈도우를 보여주면 화면 깜박임 없이 부드럽게 표시된다:

const { BrowserWindow } = require('electron')
const win = new BrowserWindow({ show: false })
win.once('ready-to-show', () => {
win.show()
})

이 이벤트는 일반적으로 did-finish-load 이벤트 이후에 발생하지만, 원격 리소스가 많은 페이지의 경우 did-finish-load 이벤트보다 먼저 발생할 수도 있다.

이 이벤트를 사용하면 show가 false로 설정되어 있어도 렌더러가 "보이는" 상태로 간주되고 페인팅이 진행된다는 점에 유의해야 한다. paintWhenInitiallyHidden: false를 사용하면 이 이벤트는 절대 발생하지 않는다.

backgroundColor 속성 설정하기

복잡한 앱의 경우 ready-to-show 이벤트가 너무 늦게 발생해 앱이 느리게 느껴질 수 있다. 이런 경우에는 윈도우를 즉시 표시하고, 앱의 배경색과 유사한 backgroundColor를 설정하는 것이 좋다.

const { BrowserWindow } = require('electron')

const win = new BrowserWindow({ backgroundColor: '#2e2c29' })
win.loadURL('https://github.com')

ready-to-show 이벤트를 사용하는 앱에서도 backgroundColor를 설정해 앱이 더 자연스럽게 느껴지도록 하는 것이 좋다.

유효한 backgroundColor 값의 예는 다음과 같다:

const win = new BrowserWindow()
win.setBackgroundColor('hsl(230, 100%, 50%)')
win.setBackgroundColor('rgb(255, 145, 145)')
win.setBackgroundColor('#ff00a3')
win.setBackgroundColor('blueviolet')

이러한 색상 타입에 대한 자세한 정보는 win.setBackgroundColor에서 확인할 수 있다.

부모와 자식 윈도우

parent 옵션을 사용하면 자식 윈도우를 생성할 수 있다:

const { BrowserWindow } = require('electron')

const top = new BrowserWindow()
const child = new BrowserWindow({ parent: top })
child.show()
top.show()

child 윈도우는 항상 top 윈도우 위에 표시된다.

모달 윈도우

모달 윈도우는 부모 윈도우를 비활성화하는 자식 윈도우다. 모달 윈도우를 생성하려면 parentmodal 옵션을 모두 설정해야 한다.

const { BrowserWindow } = require('electron')

const top = new BrowserWindow()
const child = new BrowserWindow({ parent: top, modal: true, show: false })
child.loadURL('https://github.com')
child.once('ready-to-show', () => {
child.show()
})

페이지 가시성

Page Visibility API는 다음과 같이 동작한다:

  • 모든 플랫폼에서, 가시성 상태는 윈도우가 숨겨졌거나 최소화되었는지를 추적한다.
  • 추가로, macOS에서는 가시성 상태가 윈도우의 가림 상태도 추적한다. 윈도우가 다른 윈도우에 의해 완전히 가려진 경우, 가시성 상태는 hidden이 된다. 다른 플랫폼에서는 윈도우가 최소화되거나 win.hide()로 명시적으로 숨겨진 경우에만 가시성 상태가 hidden이 된다.
  • show: falseBrowserWindow를 생성하면, 윈도우가 실제로 숨겨져 있더라도 초기 가시성 상태는 visible이 된다.
  • backgroundThrottling이 비활성화된 경우, 윈도우가 최소화되거나 가려지거나 숨겨져도 가시성 상태는 visible로 유지된다.

전력 소모를 최소화하기 위해 가시성 상태가 hidden일 때는 리소스를 많이 사용하는 작업을 일시 중지하는 것이 좋다.

플랫폼별 주의사항

  • macOS에서는 모달 윈도우가 부모 윈도우에 부착된 시트 형태로 표시된다.
  • macOS에서는 부모 윈도우가 이동할 때 자식 윈도우가 상대적 위치를 유지한다. 반면 Windows와 Linux에서는 자식 윈도우가 이동하지 않는다.
  • Linux에서는 모달 윈도우의 타입이 dialog로 변경된다.
  • Linux에서는 많은 데스크톱 환경에서 모달 윈도우를 숨기는 기능을 지원하지 않는다.

Class: BrowserWindow extends BaseWindow

브라우저 윈도우를 생성하고 제어한다.

프로세스: Main

BrowserWindowEventEmitter를 상속받는다.

options로 설정된 네이티브 속성을 기반으로 새로운 BrowserWindow를 생성한다.

new BrowserWindow([options])

  • options BrowserWindowConstructorOptions (선택 사항)
    • webPreferences WebPreferences (선택 사항) - 웹 페이지 기능에 대한 설정.
      • devTools boolean (선택 사항) - DevTools를 활성화할지 여부. false로 설정하면 BrowserWindow.webContents.openDevTools()를 사용해 DevTools를 열 수 없다. 기본값은 true이다.
      • nodeIntegration boolean (선택 사항) - Node.js 통합을 활성화할지 여부. 기본값은 false이다.
      • nodeIntegrationInWorker boolean (선택 사항) - 웹 워커에서 Node.js 통합을 활성화할지 여부. 기본값은 false이다. 자세한 내용은 멀티스레딩에서 확인할 수 있다.
      • nodeIntegrationInSubFrames boolean (선택 사항) - iframe 및 자식 윈도우와 같은 하위 프레임에서 Node.js 지원을 활성화하는 실험적 옵션. 모든 프리로드 스크립트가 각 iframe에 로드되며, process.isMainFrame을 사용해 메인 프레임인지 확인할 수 있다.
      • preload string (선택 사항) - 페이지에서 다른 스크립트가 실행되기 전에 로드될 스크립트를 지정한다. 이 스크립트는 Node.js 통합이 켜져 있든 꺼져 있든 상관없이 항상 Node.js API에 접근할 수 있다. 값은 스크립트의 절대 파일 경로여야 한다. Node.js 통합이 꺼져 있을 때, 프리로드 스크립트는 Node.js 전역 심볼을 다시 전역 범위로 재도입할 수 있다. 예제는 여기에서 확인할 수 있다.
      • sandbox boolean (선택 사항) - 설정하면, 해당 윈도우와 연결된 렌더러를 샌드박스로 만들어 Chromium OS 수준의 샌드박스와 호환되게 하고 Node.js 엔진을 비활성화한다. 이 옵션은 nodeIntegration 옵션과 다르며, 프리로드 스크립트에 사용 가능한 API가 더 제한적이다. 자세한 내용은 여기에서 확인할 수 있다.
      • session Session (선택 사항) - 페이지에서 사용할 세션을 설정한다. Session 객체를 직접 전달하는 대신 partition 옵션을 사용할 수도 있다. partition은 파티션 문자열을 받는다. sessionpartition이 모두 제공되면 session이 우선한다. 기본값은 기본 세션이다.
      • partition string (선택 사항) - 페이지에서 사용할 세션을 파티션 문자열에 따라 설정한다. partitionpersist:로 시작하면, 앱 내의 모든 페이지에서 동일한 partition을 가진 지속적인 세션을 사용한다. persist: 접두사가 없으면, 메모리 내 세션을 사용한다. 동일한 partition을 할당하면 여러 페이지가 동일한 세션을 공유할 수 있다. 기본값은 기본 세션이다.
      • zoomFactor number (선택 사항) - 페이지의 기본 확대/축소 비율. 3.0300%를 의미한다. 기본값은 1.0이다.
      • javascript boolean (선택 사항) - JavaScript 지원을 활성화할지 여부. 기본값은 true이다.
      • webSecurity boolean (선택 사항) - false로 설정하면 동일 출처 정책을 비활성화하고, 사용자가 이 옵션을 설정하지 않았다면 allowRunningInsecureContenttrue로 설정한다. 기본값은 true이다.
      • allowRunningInsecureContent boolean (선택 사항) - HTTPS 페이지가 HTTP URL에서 JavaScript, CSS 또는 플러그인을 실행할 수 있도록 허용한다. 기본값은 false이다.
      • images boolean (선택 사항) - 이미지 지원을 활성화할지 여부. 기본값은 true이다.
      • imageAnimationPolicy string (선택 사항) - 이미지 애니메이션 실행 방식을 지정한다. animate, animateOnce, noAnimation 중 하나를 선택할 수 있다. 기본값은 animate이다.
      • textAreasAreResizable boolean (선택 사항) - TextArea 엘리먼트를 크기 조정 가능하게 할지 여부. 기본값은 true이다.
      • webgl boolean (선택 사항) - WebGL 지원을 활성화할지 여부. 기본값은 true이다.
      • plugins boolean (선택 사항) - 플러그인을 활성화할지 여부. 기본값은 false이다.
      • experimentalFeatures boolean (선택 사항) - Chromium의 실험적 기능을 활성화할지 여부. 기본값은 false이다.
      • scrollBounce boolean (선택 사항) macOS - macOS에서 스크롤 바운스(고무 밴드) 효과를 활성화할지 여부. 기본값은 false이다.
      • enableBlinkFeatures string (선택 사항) - 활성화할 기능 문자열의 목록을 쉼표로 구분해 지정한다. 예: CSSVariables,KeyboardEventKey. 지원되는 전체 기능 문자열 목록은 RuntimeEnabledFeatures.json5 파일에서 확인할 수 있다.
      • disableBlinkFeatures string (선택 사항) - 비활성화할 기능 문자열의 목록을 쉼표로 구분해 지정한다. 예: CSSVariables,KeyboardEventKey. 지원되는 전체 기능 문자열 목록은 RuntimeEnabledFeatures.json5 파일에서 확인할 수 있다.
      • defaultFontFamily Object (선택 사항) - 폰트 패밀리의 기본 폰트를 설정한다.
        • standard string (선택 사항) - 기본값은 Times New Roman이다.
        • serif string (선택 사항) - 기본값은 Times New Roman이다.
        • sansSerif string (선택 사항) - 기본값은 Arial이다.
        • monospace string (선택 사항) - 기본값은 Courier New이다.
        • cursive string (선택 사항) - 기본값은 Script이다.
        • fantasy string (선택 사항) - 기본값은 Impact이다.
        • math string (선택 사항) - 기본값은 Latin Modern Math이다.
      • defaultFontSize Integer (선택 사항) - 기본값은 16이다.
      • defaultMonospaceFontSize Integer (선택 사항) - 기본값은 13이다.
      • minimumFontSize Integer (선택 사항) - 기본값은 0이다.
      • defaultEncoding string (선택 사항) - 기본값은 ISO-8859-1이다.
      • backgroundThrottling boolean (선택 사항) - 페이지가 백그라운드로 전환될 때 애니메이션과 타이머를 제한할지 여부. 이는 Page Visibility API에도 영향을 미친다. 단일 browserWindow에 표시된 webContents 중 하나라도 backgroundThrottling을 비활성화하면, 전체 윈도우에 대해 프레임이 그려지고 교체된다. 기본값은 true이다.
      • offscreen Object | boolean (선택 사항) - 브라우저 윈도우에 대해 오프스크린 렌더링을 활성화할지 여부. 기본값은 false이다. 자세한 내용은 오프스크린 렌더링 튜토리얼에서 확인할 수 있다.
        • useSharedTexture boolean (선택 사항) 실험적 - 가속화된 페인트 이벤트에 GPU 공유 텍스처를 사용할지 여부. 기본값은 false이다. 자세한 내용은 오프스크린 렌더링 튜토리얼에서 확인할 수 있다.
      • contextIsolation boolean (선택 사항) - Electron API와 지정된 preload 스크립트를 별도의 JavaScript 컨텍스트에서 실행할지 여부. 기본값은 true이다. preload 스크립트가 실행되는 컨텍스트는 자체 전용 documentwindow 전역 변수와 JavaScript 내장 객체(Array, Object, JSON 등)에만 접근할 수 있으며, 이는 로드된 콘텐츠에는 보이지 않는다. Electron API는 preload 스크립트에서만 사용 가능하며 로드된 페이지에서는 사용할 수 없다. 이 옵션은 신뢰할 수 없는 원격 콘텐츠를 로드할 때 사용해, 로드된 콘텐츠가 preload 스크립트와 사용 중인 Electron API를 변조할 수 없도록 해야 한다. 이 옵션은 Chrome 콘텐츠 스크립트에서 사용하는 기술과 동일하다. DevTools에서 콘솔 탭 상단의 콤보 박스에서 'Electron Isolated Context' 항목을 선택해 이 컨텍스트에 접근할 수 있다.
      • webviewTag boolean (선택 사항) - <webview> 태그를 활성화할지 여부. 기본값은 false이다. 참고: <webview>에 대해 구성된 preload 스크립트는 실행될 때 Node.js 통합이 활성화되므로, 악성 preload 스크립트가 포함된 <webview> 태그를 원격/신뢰할 수 없는 콘텐츠가 생성하지 못하도록 해야 한다. webContentswill-attach-webview 이벤트를 사용해 preload 스크립트를 제거하거나 <webview>의 초기 설정을 검증하거나 변경할 수 있다.
      • additionalArguments string[] (선택 사항) - 이 앱의 렌더러 프로세스에서 process.argv에 추가될 문자열 목록. 렌더러 프로세스의 프리로드 스크립트에 작은 데이터를 전달하는 데 유용하다.
      • safeDialogs boolean (선택 사항) - 브라우저 스타일의 연속 다이얼로그 보호를 활성화할지 여부. 기본값은 false이다.
      • safeDialogsMessage string (선택 사항) - 연속 다이얼로그 보호가 트리거될 때 표시할 메시지. 정의되지 않으면 기본 메시지가 사용되며, 현재 기본 메시지는 영어로 제공되고 지역화되지 않았다.
      • disableDialogs boolean (선택 사항) - 다이얼로그를 완전히 비활성화할지 여부. safeDialogs를 재정의한다. 기본값은 false이다.
      • navigateOnDragDrop boolean (선택 사항) - 파일이나 링크를 페이지에 드래그 앤 드롭할 때 네비게이션을 발생시킬지 여부. 기본값은 false이다.
      • autoplayPolicy string (선택 사항) - 윈도우 내 콘텐츠에 적용할 자동 재생 정책. no-user-gesture-required, user-gesture-required, document-user-activation-required 중 하나를 선택할 수 있다. 기본값은 no-user-gesture-required이다.
      • disableHtmlFullscreenWindowResize boolean (선택 사항) - HTML 전체 화면으로 전환할 때 윈도우 크기 조정을 방지할지 여부. 기본값은 false이다.
      • accessibleTitle string (선택 사항) - 화면 리더와 같은 접근성 도구에만 제공되는 대체 제목 문자열. 이 문자열은 사용자에게 직접 보이지 않는다.
      • spellcheck boolean (선택 사항) - 내장 맞춤법 검사기를 활성화할지 여부. 기본값은 true이다.
      • enableWebSQL boolean (선택 사항) - WebSQL API를 활성화할지 여부. 기본값은 true이다.
      • v8CacheOptions string (선택 사항) - blink에서 사용하는 v8 코드 캐싱 정책을 강제한다. 허용되는 값은 다음과 같다:
        • none - 코드 캐싱을 비활성화한다.
        • code - 휴리스틱 기반 코드 캐싱.
        • bypassHeatCheck - 코드 캐싱 휴리스틱을 우회하지만 지연 컴파일을 사용한다.
        • bypassHeatCheckAndEagerCompile - 위와 동일하지만 컴파일이 즉시 이루어진다. 기본 정책은 code이다.
      • enablePreferredSizeMode boolean (선택 사항) - 선호 크기 모드를 활성화할지 여부. 선호 크기는 문서의 레이아웃을 포함하는 데 필요한 최소 크기로, 스크롤이 필요하지 않다. 이 옵션을 활성화하면 선호 크기가 변경될 때 WebContents에서 preferred-size-changed 이벤트가 발생한다. 기본값은 false이다.
      • transparent boolean (선택 사항) - 게스트 페이지에 대해 배경 투명도를 활성화할지 여부. 기본값은 true이다. 참고: 게스트 페이지의 텍스트와 배경 색상은 루트 엘리먼트의 색상 스킴에서 파생된다. 투명도가 활성화되면 텍스트 색상은 여전히 변경되지만 배경은 투명하게 유지된다.
    • paintWhenInitiallyHidden boolean (선택 사항) - showfalse이고 창이 방금 생성되었을 때 렌더러가 활성 상태여야 하는지 여부. show: false 상태에서 첫 로드 시 document.visibilityState가 올바르게 동작하도록 하려면 이 값을 false로 설정해야 한다. 이 값을 false로 설정하면 ready-to-show 이벤트가 발생하지 않는다. 기본값은 true이다.

인스턴스 이벤트

new BrowserWindow로 생성된 객체는 다음과 같은 이벤트를 발생시킨다.

참고: 일부 이벤트는 특정 운영체제에서만 사용할 수 있으며, 해당 이벤트에는 그 내용이 표시되어 있다.

이벤트: 'page-title-updated'

반환값:

  • event Event
  • title string
  • explicitSet boolean

문서의 제목이 변경될 때 발생한다. event.preventDefault()를 호출하면 기본 윈도우의 제목 변경을 막을 수 있다. explicitSet은 파일 URL에서 제목이 생성된 경우 false가 된다.

이벤트: 'close'

반환값:

  • event Event

윈도우가 닫히기 직전에 발생하는 이벤트다. 이 이벤트는 DOM의 beforeunloadunload 이벤트보다 먼저 발생한다. event.preventDefault()를 호출하면 윈도우 닫기를 취소할 수 있다.

일반적으로 윈도우를 닫을지 여부를 결정하기 위해 beforeunload 핸들러를 사용한다. 이 핸들러는 윈도우가 다시 로드될 때도 호출된다. Electron에서는 undefined가 아닌 값을 반환하면 윈도우 닫기가 취소된다. 예를 들어:

window.onbeforeunload = (e) => {
console.log('I do not want to be closed')

// 일반 브라우저에서는 사용자에게 메시지 박스가 표시되지만,
// 여기서는 void가 아닌 값을 반환하면 윈도우 닫기가 조용히 취소된다.
// 애플리케이션 닫기를 사용자가 확인할 수 있도록 다이얼로그 API를 사용하는 것이 권장된다.
e.returnValue = false
}

참고: window.onbeforeunload = handlerwindow.addEventListener('beforeunload', handler)의 동작에는 미묘한 차이가 있다. Electron 내에서 더 일관되게 동작하기 위해서는 값을 반환하는 대신 event.returnValue를 명시적으로 설정하는 것이 권장된다.

이벤트: 'closed'

윈도우가 닫힐 때 발생한다. 이 이벤트를 받은 후에는 윈도우에 대한 참조를 제거하고 더 이상 사용하지 않아야 한다.

이벤트: 'session-end' 윈도우

이 이벤트는 강제 종료, 시스템 재시작, 또는 세션 로그오프로 인해 윈도우 세션이 종료될 때 발생한다.

이벤트: 'unresponsive'

웹 페이지가 응답하지 않을 때 발생하는 이벤트이다.

이벤트: 'responsive'

이 이벤트는 응답하지 않는 웹 페이지가 다시 응답 가능한 상태가 되었을 때 발생한다.

이벤트: 'blur'

윈도우가 포커스를 잃을 때 발생한다.

이벤트: 'focus'

윈도우가 포커스를 얻을 때 발생한다.

이벤트: 'show'

윈도우가 표시될 때 발생한다.

이벤트: 'hide'

윈도우가 숨겨질 때 발생한다.

이벤트: 'ready-to-show'

웹 페이지가 렌더링되었지만 아직 표시되지 않은 상태에서 윈도우가 시각적인 깜빡임 없이 표시될 준비가 되었을 때 발생한다.

이 이벤트를 사용하면 show가 false로 설정되어 있어도 렌더러가 "보이는" 상태로 간주되어 페인팅된다는 점에 유의한다. paintWhenInitiallyHidden: false를 사용할 경우 이 이벤트는 발생하지 않는다.

이벤트: 'maximize'

윈도우가 최대화될 때 발생하는 이벤트이다.

이벤트: 'unmaximize'

윈도우가 최대화 상태에서 벗어날 때 발생한다.

이벤트: 'minimize'

윈도우가 최소화될 때 발생한다.

이벤트: 'restore'

윈도우가 최소화된 상태에서 복원될 때 발생하는 이벤트이다.

이벤트: 'will-resize' macOS Windows

반환값:

  • event Event
  • newBounds Rectangle - 윈도우가 리사이즈될 크기.
  • details Object
    • edge (string) - 윈도우를 리사이즈하기 위해 드래그하는 가장자리. bottom, left, right, top-left, top-right, bottom-left, bottom-right 중 하나가 될 수 있다.

윈도우가 리사이즈되기 전에 발생한다. event.preventDefault()를 호출하면 윈도우 리사이즈를 막을 수 있다.

이 이벤트는 윈도우를 수동으로 리사이즈할 때만 발생한다. setBounds/setSize로 윈도우를 리사이즈할 때는 이 이벤트가 발생하지 않는다.

edge 옵션의 가능한 값과 동작은 플랫폼에 따라 다르다. 가능한 값은 다음과 같다:

  • Windows에서는 bottom, top, left, right, top-left, top-right, bottom-left, bottom-right가 가능하다.
  • macOS에서는 bottomright만 가능하다.
    • bottom 값은 세로 리사이징을 나타낸다.
    • right 값은 가로 리사이징을 나타낸다.

이벤트: 'resize'

윈도우 크기가 조정된 후에 발생한다.

이벤트: 'resized' macOS Windows

이 이벤트는 윈도우의 크기 조정이 완료되었을 때 한 번 발생한다.

일반적으로 윈도우를 수동으로 크기 조정할 때 이 이벤트가 발생한다. macOS에서는 setBounds 또는 setSize를 사용해 윈도우 크기를 조정하고, animate 매개변수를 true로 설정한 경우에도 크기 조정이 완료되면 이 이벤트가 발생한다.

이벤트: 'will-move' macOS Windows

반환값:

  • event Event
  • newBounds Rectangle - 윈도우가 이동될 위치

윈도우가 이동되기 전에 발생하는 이벤트이다. 윈도우에서 event.preventDefault()를 호출하면 윈도우 이동을 막을 수 있다.

이 이벤트는 윈도우를 수동으로 이동할 때만 발생한다. setPosition, setBounds, center를 사용해 윈도우를 이동할 때는 이 이벤트가 발생하지 않는다.

이벤트: 'move'

윈도우가 새로운 위치로 이동할 때 발생하는 이벤트이다.

이벤트: 'moved' macOS Windows

윈도우가 새로운 위치로 이동했을 때 한 번 발생한다.

참고: macOS에서는 이 이벤트가 move의 별칭(alias)이다.

이벤트: 'enter-full-screen'

윈도우가 전체 화면 모드로 전환될 때 발생한다.

이벤트: 'leave-full-screen'

윈도우가 전체 화면 상태를 벗어날 때 발생한다.

이벤트: 'enter-html-full-screen'

HTML API에 의해 윈도우가 전체 화면 상태로 전환될 때 발생한다.

이벤트: 'leave-html-full-screen'

이 이벤트는 HTML API에 의해 트리거된 전체 화면 모드에서 윈도우가 빠져나올 때 발생한다.

이벤트: 'always-on-top-changed'

반환값:

  • event Event
  • isAlwaysOnTop boolean

이 이벤트는 윈도우가 다른 윈도우 위에 항상 표시되도록 설정되거나 해제될 때 발생한다.

이벤트: 'app-command' Windows Linux

반환값:

  • event Event
  • command string

App Command가 실행될 때 발생한다. 이 명령어는 일반적으로 키보드의 미디어 키나 브라우저 명령어, 그리고 일부 마우스에 내장된 "뒤로 가기" 버튼과 관련이 있다.

명령어는 소문자로 변환되고, 언더스코어는 하이픈으로 대체되며, APPCOMMAND_ 접두사는 제거된다. 예를 들어, APPCOMMAND_BROWSER_BACKWARDbrowser-backward로 발생한다.

const { BrowserWindow } = require('electron')
const win = new BrowserWindow()
win.on('app-command', (e, cmd) => {
// 사용자가 마우스 뒤로 가기 버튼을 누르면 윈도우를 뒤로 이동
if (cmd === 'browser-backward' && win.webContents.canGoBack()) {
win.webContents.goBack()
}
})

Linux에서 명시적으로 지원하는 App Command는 다음과 같다:

  • browser-backward
  • browser-forward

이벤트: 'swipe' macOS

반환값:

  • event Event
  • direction string

세 손가락으로 스와이프할 때 발생한다. 가능한 방향은 up, right, down, left이다.

이 이벤트는 화면의 콘텐츠가 스와이프와 함께 이동하지 않는 구형 macOS 스타일 트랙패드 스와이프를 처리하기 위해 설계되었다. 대부분의 macOS 트랙패드는 더 이상 이러한 스와이프 방식을 지원하지 않도록 설정되어 있다. 따라서 이 이벤트가 정상적으로 발생하려면 시스템 설정 > 트랙패드 > 추가 제스처에서 '페이지 간 스와이프' 옵션을 '두 손가락 또는 세 손가락으로 스와이프'로 설정해야 한다.

이벤트: 'rotate-gesture' macOS

반환값:

  • event 이벤트
  • rotation Float

트랙패드 회전 제스처가 발생할 때 방출된다. 회전 제스처가 끝날 때까지 계속해서 방출된다. 각 방출 시의 rotation 값은 마지막 방출 이후 회전한 각도(도 단위)를 나타낸다. 회전 제스처가 끝나면 마지막으로 방출되는 이벤트의 값은 항상 0이다. 반시계 방향 회전 값은 양수이고, 시계 방향 회전 값은 음수이다.

이벤트: 'sheet-begin' macOS

윈도우가 시트를 열 때 발생한다.

이벤트: 'sheet-end' macOS

윈도우가 시트를 닫았을 때 발생하는 이벤트다.

이벤트: 'new-window-for-tab' macOS

네이티브 새 탭 버튼을 클릭할 때 발생한다.

이벤트: 'system-context-menu' Windows

반환값:

  • event Event
  • point Point - 컨텍스트 메뉴가 실행된 화면 좌표

윈도우에서 시스템 컨텍스트 메뉴가 실행될 때 발생한다. 일반적으로 사용자가 윈도우의 비클라이언트 영역에서 마우스 오른쪽 버튼을 클릭할 때만 트리거된다. 비클라이언트 영역은 윈도우의 제목 표시줄 또는 프레임리스 윈도우에서 -webkit-app-region: drag로 선언한 영역을 말한다.

event.preventDefault()를 호출하면 메뉴가 표시되지 않도록 할 수 있다.

정적 메서드

BrowserWindow 클래스는 다음과 같은 정적 메서드를 제공한다:

BrowserWindow.getAllWindows()는 현재 열려 있는 모든 브라우저 윈도우를 배열로 반환한다.

BrowserWindow.getFocusedWindow()

BrowserWindow | null 타입의 값을 반환한다. 현재 애플리케이션에서 포커스된 윈도우를 반환하며, 포커스된 윈도우가 없으면 null을 반환한다.

BrowserWindow.fromWebContents(webContents)

BrowserWindow | null을 반환한다. 주어진 webContents를 소유한 윈도우를 반환하며, 해당 컨텐츠가 윈도우에 속하지 않으면 null을 반환한다.

BrowserWindow.fromBrowserView(browserView) Deprecated

참고 BrowserView 클래스는 더 이상 사용되지 않으며, 새로운 WebContentsView 클래스로 대체되었다.

BrowserWindow | null을 반환한다. 주어진 browserView를 소유하는 윈도우를 반환한다. 만약 해당 뷰가 어떤 윈도우에도 연결되어 있지 않다면 null을 반환한다.

BrowserWindow.fromId(id)

  • id Integer

BrowserWindow | null를 반환한다. 주어진 id에 해당하는 윈도우를 가져온다.

인스턴스 속성

new BrowserWindow로 생성된 객체는 다음과 같은 속성을 가진다:

const { BrowserWindow } = require('electron')
// 이 예제에서 `win`은 우리의 인스턴스이다
const win = new BrowserWindow({ width: 800, height: 600 })
win.loadURL('https://github.com')

win.webContents 읽기 전용

이 윈도우가 소유한 WebContents 객체다. 모든 웹 페이지 관련 이벤트와 작업은 이 객체를 통해 처리된다.

메서드와 이벤트에 대한 자세한 내용은 webContents 문서를 참고한다.

win.id 읽기 전용

윈도우의 고유 ID를 나타내는 정수(Integer) 속성이다. 이 ID는 전체 Electron 애플리케이션 내의 모든 BrowserWindow 인스턴스 중에서 유일한 값을 가진다.

win.tabbingIdentifier macOS Readonly

tabbingIdentifierBrowserWindow 생성자에 전달된 값과 동일한 string 타입의 선택적 프로퍼티이다. 설정되지 않은 경우 undefined 값을 가진다.

win.autoHideMenuBar

boolean 타입의 속성으로, 윈도우 메뉴 바가 자동으로 숨겨질지 여부를 결정한다. 이 속성을 설정하면, 사용자가 Alt 키를 누를 때만 메뉴 바가 표시된다.

메뉴 바가 이미 보이는 상태에서 이 속성을 true로 설정하더라도 즉시 숨겨지지 않는다.

win.simpleFullScreen은 윈도우가 간단한(라이언 이전 버전) 전체 화면 모드인지를 결정하는 boolean 타입의 프로퍼티이다.

win.fullScreen

윈도우가 전체 화면 모드인지 여부를 결정하는 boolean 타입의 프로퍼티이다.

win.focusable Windows macOS

boolean 타입의 프로퍼티로, 윈도우가 포커스를 받을 수 있는지 여부를 결정한다.

win.visibleOnAllWorkspaces macOS Linux

boolean 타입의 속성으로, 윈도우가 모든 작업 공간에서 표시되는지 여부를 결정한다.

참고: Windows에서는 항상 false를 반환한다.

win.shadow

win.shadow는 윈도우에 그림자가 있는지 여부를 결정하는 불리언 타입의 속성이다.

win.menuBarVisible Windows Linux

메뉴 바의 가시성을 결정하는 boolean 타입의 프로퍼티이다.

참고: 메뉴 바가 자동 숨김 상태일 때도, 사용자가 Alt 키 하나를 누르면 메뉴 바를 다시 표시할 수 있다.

win.kiosk

win.kiosk는 윈도우가 키오스크 모드인지 여부를 결정하는 불리언 타입의 속성이다.

win.documentEdited macOS

boolean 타입의 속성으로, 윈도우의 문서가 편집되었는지 여부를 나타낸다.

이 값을 true로 설정하면 타이틀 바의 아이콘이 회색으로 변한다.

win.representedFilename macOS

string 타입의 프로퍼티로, 윈도우가 나타내는 파일의 경로명을 결정한다. 이 프로퍼티를 설정하면 해당 파일의 아이콘이 윈도우의 타이틀 바에 표시된다.

win.title

win.title은 네이티브 윈도우의 제목을 결정하는 string 타입의 속성이다.

참고: 웹 페이지의 제목과 네이티브 윈도우의 제목은 서로 다를 수 있다.

win.minimizable macOS Windows

boolean 타입의 프로퍼티로, 사용자가 윈도우를 수동으로 최소화할 수 있는지 여부를 결정한다.

리눅스에서는 설정자(setter)가 아무 동작도 하지 않지만, 접근자(getter)는 true를 반환한다.

win.maximizable macOS Windows

boolean 타입의 속성은 사용자가 윈도우를 수동으로 최대화할 수 있는지 여부를 결정한다.

리눅스에서는 설정자(setter)가 아무런 동작을 하지 않지만, 값은 true를 반환한다.

win.fullScreenable

boolean 타입의 속성은 윈도우의 최대화/확대 버튼이 전체 화면 모드를 전환할지, 아니면 윈도우를 최대화할지 결정한다.

win.resizable

win.resizable은 사용자가 윈도우의 크기를 직접 조정할 수 있는지 여부를 결정하는 불리언 타입의 프로퍼티이다.

win.closable macOS Windows

boolean 타입의 속성으로, 사용자가 직접 윈도우를 닫을 수 있는지 여부를 결정한다.

리눅스에서는 설정자가 동작하지 않지만, 반환값은 true를 얻는다.

win.movable macOS Windows

boolean 타입의 프로퍼티로, 사용자가 윈도우를 이동할 수 있는지 여부를 결정한다.

Linux에서는 설정자(setter)가 동작하지 않지만, 접근자(getter)는 true를 반환한다.

win.excludedFromShownWindowsMenu macOS

boolean 타입의 속성은 윈도우가 애플리케이션의 Windows 메뉴에서 제외될지 여부를 결정한다. 기본값은 false이다.

const win = new BrowserWindow({ height: 600, width: 600 })

const template = [
{
role: 'windowmenu'
}
]

win.excludedFromShownWindowsMenu = true

const menu = Menu.buildFromTemplate(template)
Menu.setApplicationMenu(menu)

win.accessibleTitle

win.accessibleTitle은 스크린 리더와 같은 접근성 도구에만 제공되는 대체 제목을 정의하는 문자열(string) 속성이다. 이 문자열은 사용자에게 직접 보이지 않는다.

인스턴스 메서드

new BrowserWindow로 생성된 객체는 다음과 같은 인스턴스 메서드를 제공한다.

참고: 일부 메서드는 특정 운영체제에서만 사용 가능하며, 해당 메서드에는 운영체제가 명시되어 있다.

win.destroy()

윈도우를 강제로 닫는다. 이 경우 웹 페이지에서 unloadbeforeunload 이벤트가 발생하지 않으며, 해당 윈도우에서 close 이벤트도 발생하지 않는다. 하지만 closed 이벤트는 반드시 발생한다.

win.close()를 사용하면 현재 열린 윈도우를 닫을 수 있다. 이 메서드는 사용자가 직접 윈도우의 닫기 버튼을 클릭하는 것과 동일한 효과를 낸다. 다만, 웹 페이지가 닫기를 취소할 수도 있다. 자세한 내용은 close 이벤트를 참고한다.

win.focus()는 해당 윈도우에 포커스를 맞춘다.

win.blur()

윈도우에서 포커스를 제거한다.

win.isFocused()

boolean 타입의 값을 반환한다. 윈도우가 현재 포커스 상태인지 여부를 나타낸다.

win.isDestroyed()

boolean 타입을 반환한다. 윈도우가 파괴되었는지 여부를 나타낸다.

win.show()

윈도우를 보여주고 포커스를 준다.

win.showInactive()

윈도우를 보여주지만 포커스를 주지 않는다.

win.hide()

윈도우를 숨긴다.

win.isVisible()

boolean 타입을 반환한다. 윈도우가 앱의 전경에서 사용자에게 보이는지 여부를 나타낸다.

win.isModal()

boolean 타입의 값을 반환한다. 현재 윈도우가 모달 윈도우인지 여부를 나타낸다.

win.maximize()

윈도우를 최대화한다. 현재 윈도우가 화면에 표시되지 않은 상태라면, 최대화와 함께 윈도우를 표시하지만 포커스는 주지 않는다.

win.unmaximize()

윈도우의 최대화 상태를 해제한다.

win.isMaximized()

boolean을 반환한다. 윈도우가 최대화되었는지 여부를 나타낸다.

win.minimize()

윈도우를 최소화한다. 일부 플랫폼에서는 최소화된 윈도우가 Dock에 표시된다.

win.restore()

최소화된 윈도우를 이전 상태로 복원한다.

win.isMinimized()

boolean 타입의 값을 반환한다. 윈도우가 최소화되었는지 여부를 나타낸다.

win.setFullScreen(flag)

  • flag boolean

윈도우를 전체 화면 모드로 설정할지 여부를 지정한다.

참고: macOS에서는 전체 화면 전환이 비동기적으로 진행된다. 전체 화면 상태에 따라 추가 작업을 수행해야 한다면, 'enter-full-screen' 또는 'leave-full-screen' 이벤트를 활용한다.

win.isFullScreen()

boolean을 반환한다. 윈도우가 전체 화면 모드인지 여부를 나타낸다.

참고: macOS에서는 전체 화면 전환이 비동기적으로 이루어진다. BrowserWindow의 전체 화면 상태를 확인할 때, 'enter-full-screen' 또는 'leave-full-screen' 이벤트가 발생했는지 확인해야 한다.

win.setSimpleFullScreen(flag) macOS

  • flag boolean

단순 전체 화면 모드를 활성화하거나 비활성화한다.

단순 전체 화면 모드는 macOS Lion(10.7) 이전 버전에서 제공되던 기본 전체 화면 동작을 흉내 낸다.

win.isSimpleFullScreen() macOS

boolean 값을 반환한다. 윈도우가 간단한(라이언 이전) 전체 화면 모드인지 여부를 나타낸다.

win.isNormal()

boolean을 반환한다. 윈도우가 일반 상태인지 여부를 나타낸다. 윈도우가 최대화되지 않았고, 최소화되지 않았으며, 전체 화면 모드가 아닌 경우 true를 반환한다.

win.setAspectRatio(aspectRatio[, extraSize])

  • aspectRatio Float - 콘텐츠 뷰의 일부 영역에 대해 유지할 가로세로 비율
  • extraSize Size (선택 사항) macOS - 가로세로 비율 계산에서 제외할 추가 크기

이 함수는 윈도우가 특정 가로세로 비율을 유지하도록 설정한다. extraSize는 개발자가 픽셀 단위로 지정한 공간을 가로세로 비율 계산에 포함하지 않도록 한다. 이 API는 윈도우 크기와 콘텐츠 크기의 차이를 이미 고려하고 있다.

HD 비디오 플레이어와 관련 컨트롤이 있는 일반적인 윈도우를 예로 들어보자. 왼쪽 가장자리에 15픽셀, 오른쪽 가장자리에 25픽셀, 플레이어 아래에 50픽셀의 컨트롤이 있다고 가정한다. 플레이어 자체 내에서 16:9 비율(HD @1920x1080의 표준 가로세로 비율)을 유지하려면 이 함수를 16/9와 { width: 40, height: 50 } 인자로 호출한다. 두 번째 인자는 추가 너비와 높이가 콘텐츠 뷰 내 어디에 위치하는지 상관하지 않는다. 단지 그들이 존재하는지만 고려한다. 전체 콘텐츠 뷰 내 추가 너비와 높이 영역을 모두 합산하면 된다.

가로세로 비율은 win.setSize와 같은 API로 프로그래밍 방식으로 윈도우 크기를 조정할 때는 적용되지 않는다.

가로세로 비율을 초기화하려면 aspectRatio 값으로 0을 전달한다: win.setAspectRatio(0).

win.setBackgroundColor(backgroundColor)

  • backgroundColor string - Hex, RGB, RGBA, HSL, HSLA 형식 또는 CSS 색상 이름으로 지정된 색상. Hex 타입의 경우 알파 채널은 선택 사항이다.

유효한 backgroundColor 값의 예:

  • Hex
    • #fff (단축 RGB)
    • #ffff (단축 ARGB)
    • #ffffff (RGB)
    • #ffffffff (ARGB)
  • RGB
    • rgb\(([\d]+),\s*([\d]+),\s*([\d]+)\)
      • 예: rgb(255, 255, 255)
  • RGBA
    • rgba\(([\d]+),\s*([\d]+),\s*([\d]+),\s*([\d.]+)\)
      • 예: rgba(255, 255, 255, 1.0)
  • HSL
    • hsl\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%\)
      • 예: hsl(200, 20%, 50%)
  • HSLA
    • hsla\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)
      • 예: hsla(200, 20%, 50%, 0.5)
  • 색상 이름
    • SkParseColor.cpp에 나열된 옵션을 참고
    • CSS Color Module Level 3 키워드와 유사하지만 대소문자를 구분한다.
      • 예: blueviolet 또는 red

윈도우의 배경색을 설정한다. 자세한 내용은 배경색 속성 설정을 참고한다.

win.previewFile(path[, displayName]) macOS

  • path string - QuickLook으로 미리 볼 파일의 절대 경로. Quick Look은 파일 경로에 있는 파일 이름과 확장자를 사용해 열 파일의 콘텐츠 타입을 결정하기 때문에 이 값이 중요하다.
  • displayName string (선택 사항) - Quick Look 모달 뷰에 표시할 파일 이름. 이 값은 순전히 시각적인 용도이며 파일의 콘텐츠 타입에는 영향을 미치지 않는다. 기본값은 path이다.

주어진 경로의 파일을 Quick Look으로 미리 본다.

win.closeFilePreview() macOS

현재 열려 있는 퀵 룩 패널을 닫는다.

win.setBounds(bounds[, animate])

  • bounds Partial<Rectangle>
  • animate boolean (선택 사항) macOS

윈도우의 크기와 위치를 지정한 범위로 조정한다. 제공되지 않은 속성은 현재 값으로 기본 설정된다.

const { BrowserWindow } = require('electron')
const win = new BrowserWindow()

// 모든 bounds 속성 설정
win.setBounds({ x: 440, y: 225, width: 800, height: 600 })

// 단일 bounds 속성 설정
win.setBounds({ width: 100 })

// { x: 440, y: 225, width: 100, height: 600 }
console.log(win.getBounds())

참고: macOS에서는 y 좌표 값이 트레이 높이보다 작을 수 없다. 트레이 높이는 시간이 지남에 따라 변경되었으며, 운영체제에 따라 다르지만 일반적으로 20-40px 사이이다. 트레이 높이보다 작은 값을 전달하면 트레이와 맞닿은 윈도우가 생성된다.

win.getBounds()

Rectangle 타입의 객체를 반환한다. 이 객체는 윈도우의 bounds 정보를 담고 있다.

참고: macOS에서는 반환된 y좌표 값이 최소 Tray 높이 이상이 된다. 예를 들어, 트레이 높이가 38일 때 win.setBounds({ x: 25, y: 20, width: 800, height: 600 })를 호출하면, win.getBounds(){ x: 25, y: 38, width: 800, height: 600 }을 반환한다.

win.getBackgroundColor()

string 타입을 반환한다. 윈도우의 배경 색상을 Hex (#RRGGBB) 형식으로 가져온다.

backgroundColor 설정하기를 참조한다.

참고: 알파 값은 빨강, 초록, 파랑 값과 함께 반환되지 않는다.

win.setContentBounds(bounds[, animate])

  • bounds Rectangle
  • animate boolean (선택 사항) macOS

윈도우의 클라이언트 영역(예: 웹 페이지)을 지정된 범위로 크기를 조정하고 이동한다.

win.getContentBounds()

Rectangle 타입의 객체를 반환한다. 이 객체는 윈도우의 클라이언트 영역의 경계를 나타낸다.

win.getNormalBounds()

Rectangle을 반환한다. 이는 윈도우의 일반 상태에서의 경계를 포함한다.

참고: 윈도우의 현재 상태가 최대화, 최소화, 또는 전체 화면 모드 중 어느 것이라도, 이 함수는 항상 윈도우의 일반 상태에서의 위치와 크기를 반환한다. 일반 상태에서 getBoundsgetNormalBounds는 동일한 Rectangle을 반환한다.

win.setEnabled(enable)

  • enable boolean

윈도우를 활성화하거나 비활성화한다.

win.isEnabled()

boolean 타입의 값을 반환한다. 윈도우가 활성화 상태인지 여부를 나타낸다.

win.setSize(width, height[, animate])

  • width Integer
  • height Integer
  • animate boolean (선택 사항) macOS

윈도우의 크기를 widthheight로 조정한다. 만약 widthheight가 설정된 최소 크기 제한보다 작다면, 윈도우는 최소 크기로 자동 조정된다.

win.getSize()

Integer[] 타입의 값을 반환한다. 윈도우의 너비와 높이를 포함한다.

win.setContentSize(width, height[, animate])

  • width Integer
  • height Integer
  • animate boolean (선택 사항) macOS

윈도우의 클라이언트 영역(예: 웹 페이지)을 지정한 widthheight로 크기를 조정한다.

win.getContentSize()

Integer[] 타입의 값을 반환한다. 이 배열은 윈도우의 클라이언트 영역 너비와 높이를 포함한다.

win.setMinimumSize(width, height)

  • width Integer
  • height Integer

윈도우의 최소 크기를 widthheight로 설정한다.

win.getMinimumSize()

Integer[] 타입의 값을 반환한다. 윈도우의 최소 너비와 높이를 포함한다.

win.setMaximumSize(width, height)

  • width Integer
  • height Integer

윈도우의 최대 크기를 widthheight로 설정한다.

win.getMaximumSize()

Integer[] 타입의 값을 반환한다. 윈도우의 최대 너비와 높이를 포함한다.

win.setResizable(resizable)

  • resizable boolean

사용자가 윈도우 크기를 직접 조절할 수 있는지 여부를 설정한다.

win.isResizable()

boolean 값을 반환한다. 사용자가 윈도우의 크기를 직접 조정할 수 있는지 여부를 나타낸다.

win.setMovable(movable) macOS Windows

  • movable boolean

사용자가 윈도우를 이동할 수 있는지 여부를 설정한다. Linux에서는 아무런 동작을 하지 않는다.

win.isMovable() macOS Windows

boolean 값을 반환한다. 사용자가 윈도우를 이동할 수 있는지 여부를 나타낸다.

Linux에서는 항상 true를 반환한다.

win.setMinimizable(minimizable) macOS Windows

  • minimizable boolean

사용자가 윈도우를 수동으로 최소화할 수 있는지 여부를 설정한다. Linux에서는 아무런 동작을 하지 않는다.

win.isMinimizable() macOS Windows

boolean 값을 반환한다. 사용자가 윈도우를 수동으로 최소화할 수 있는지 여부를 나타낸다.

Linux에서는 항상 true를 반환한다.

win.setMaximizable(maximizable) macOS Windows

  • maximizable boolean

사용자가 윈도우를 수동으로 최대화할 수 있는지 여부를 설정한다. Linux에서는 아무런 동작을 하지 않는다.

win.isMaximizable() macOS Windows

boolean을 반환한다. 사용자가 윈도우를 수동으로 최대화할 수 있는지 여부를 나타낸다.

Linux에서는 항상 true를 반환한다.

win.setFullScreenable(fullscreenable)

  • fullscreenable boolean

최대화/확대 버튼이 전체 화면 모드로 전환할지, 아니면 윈도우를 최대화할지 설정한다.

win.isFullScreenable()

boolean 타입을 반환한다. 이 값은 윈도우의 최대화/확대 버튼이 전체 화면 모드로 전환할지, 아니면 윈도우를 최대화할지를 나타낸다.

win.setClosable(closable) macOS Windows

  • closable boolean

사용자가 윈도우를 직접 닫을 수 있는지 여부를 설정한다. Linux에서는 아무런 동작을 하지 않는다.

win.isClosable() macOS Windows

boolean 타입의 값을 반환한다. 이 값은 사용자가 직접 윈도우를 닫을 수 있는지 여부를 나타낸다.

리눅스에서는 항상 true를 반환한다.

win.setHiddenInMissionControl(hidden) macOS

  • hidden boolean

사용자가 미션 컨트롤로 전환할 때 윈도우를 숨길지 여부를 설정한다.

win.isHiddenInMissionControl() macOS

boolean 값을 반환한다. 사용자가 미션 컨트롤로 전환할 때 해당 윈도우가 숨겨지는지 여부를 나타낸다.

win.setAlwaysOnTop(flag[, level][, relativeLevel])

  • flag boolean
  • level string (선택 사항) macOS Windows - 값으로는 normal, floating, torn-off-menu, modal-panel, main-menu, status, pop-up-menu, screen-saver, 그리고 dock (더 이상 사용되지 않음)이 포함된다. flag가 true일 때 기본값은 floating이다. flag가 false일 때 levelnormal로 재설정된다. floating부터 status까지는 윈도우가 macOS에서 Dock 아래, Windows에서는 작업 표시줄 아래에 위치한다. pop-up-menu부터 더 높은 레벨에서는 macOS에서 Dock 위, Windows에서는 작업 표시줄 위에 표시된다. 자세한 내용은 macOS 문서를 참고한다.
  • relativeLevel Integer (선택 사항) macOS - 주어진 level에 상대적으로 이 윈도우를 몇 레이어 높게 설정할지 지정한다. 기본값은 0이다. Apple은 screen-saver보다 1 이상 높은 레벨을 설정하는 것을 권장하지 않는다.

윈도우가 항상 다른 윈도우 위에 표시되도록 설정한다. 이 설정 후에도 윈도우는 여전히 일반 윈도우이며, 포커스를 받을 수 없는 도구 상자 윈도우가 되지 않는다.

win.isAlwaysOnTop()

boolean을 반환한다. 윈도우가 다른 윈도우 위에 항상 표시되는지 여부를 나타낸다.

win.moveAbove(mediaSourceId)

  • mediaSourceId string - 윈도우 ID로, DesktopCapturerSource의 ID 형식을 따른다. 예를 들어 "window:1869:0"과 같은 형태다.

이 메서드는 z-order 기준으로 현재 윈도우를 소스 윈도우 위로 이동시킨다. mediaSourceId가 윈도우 타입이 아니거나 해당 윈도우가 존재하지 않으면 에러를 발생시킨다.

win.moveTop()

윈도우를 포커스 여부와 상관없이 z-order 상단으로 이동시킨다.

win.center()

화면의 정중앙으로 윈도우를 이동시킨다.

win.setPosition(x, y[, animate])

  • x Integer
  • y Integer
  • animate boolean (선택 사항) macOS

윈도우를 지정된 xy 좌표로 이동시킨다.

win.getPosition()

Integer[] 타입의 값을 반환한다. 이 배열은 현재 윈도우의 위치를 담고 있다.

win.setTitle(title)

  • title string

네이티브 윈도우의 제목을 title로 변경한다.

win.getTitle()

string 타입을 반환한다. 네이티브 윈도우의 제목을 가져온다.

참고: 웹 페이지의 제목은 네이티브 윈도우의 제목과 다를 수 있다.

win.setSheetOffset(offsetY[, offsetX]) macOS

  • offsetY Float
  • offsetX Float (선택 사항)

macOS에서 시트의 고정 위치를 변경한다. 기본적으로 시트는 윈도우 프레임 바로 아래에 고정되지만, HTML로 렌더링된 툴바 아래에 표시하고 싶을 때 사용할 수 있다. 예를 들어:

const { BrowserWindow } = require('electron')
const win = new BrowserWindow()

const toolbarRect = document.getElementById('toolbar').getBoundingClientRect()
win.setSheetOffset(toolbarRect.height)

win.flashFrame(flag)

History
  • flag boolean

사용자의 주의를 끌기 위해 윈도우를 깜빡이게 하거나 멈춘다.

win.setSkipTaskbar(skip) macOS Windows

  • skip boolean

윈도우가 작업 표시줄에 표시되지 않도록 설정한다.

win.setKiosk(flag)

  • flag boolean

키오스크 모드를 활성화하거나 비활성화한다.

win.isKiosk()

boolean 타입을 반환한다. 윈도우가 키오스크 모드인지 여부를 나타낸다.

win.isTabletMode() Windows

boolean 값을 반환한다. 현재 윈도우가 Windows 10 태블릿 모드인지 여부를 나타낸다.

Windows 10 사용자는 PC를 태블릿처럼 사용할 수 있다. 이 모드에서 앱은 태블릿에 최적화된 UI를 제공할 수 있다. 예를 들어, 타이틀바를 확장하거나 타이틀바 버튼을 숨기는 등의 조정이 가능하다.

이 API는 윈도우가 태블릿 모드인지 여부를 반환한다. 또한 resize 이벤트를 사용해 태블릿 모드 변경을 감지할 수 있다.

win.getMediaSourceId()

string 타입을 반환한다. 이 값은 DesktopCapturerSource의 ID 형식으로 윈도우 ID를 나타낸다. 예를 들어 "window:1324:0"과 같은 형태이다.

보다 정확히 말하면, 이 형식은 window:id:other_id이다. 여기서 id는 Windows에서는 HWND, macOS에서는 CGWindowID (uint64_t), Linux에서는 Window (unsigned long)를 나타낸다. other_id는 웹 콘텐츠(탭)를 식별하기 위해 사용되며, 동일한 최상위 윈도우 내에서 구분하는 데 활용된다.

win.getNativeWindowHandle()

Buffer를 반환한다. 이 값은 윈도우의 플랫폼별 핸들을 나타낸다.

핸들의 네이티브 타입은 다음과 같다:

  • Windows: HWND
  • macOS: NSView*
  • Linux: Window (unsigned long)

win.hookWindowMessage(message, callback) Windows

  • message Integer
  • callback Function
    • wParam Buffer - WndProc에 전달된 wParam
    • lParam Buffer - WndProc에 전달된 lParam

윈도우 메시지를 후킹한다. WndProc에서 메시지를 수신하면 callback이 호출된다.

win.isWindowMessageHooked(message) Windows

  • message Integer

boolean 값을 반환한다. 메시지가 후킹되었는지 여부에 따라 true 또는 false를 반환한다.

win.unhookWindowMessage(message) Windows

  • message Integer

윈도우 메시지 후킹을 해제한다.

win.unhookAllWindowMessages() Windows

윈도우 메시지 후킹을 모두 해제한다.

win.setRepresentedFilename(filename) macOS

  • filename string

윈도우가 나타내는 파일의 경로를 설정한다. 파일 아이콘은 윈도우 타이틀 바에 표시된다.

win.getRepresentedFilename() macOS

윈도우가 나타내는 파일의 경로를 문자열로 반환한다.

win.setDocumentEdited(edited) macOS

  • edited boolean

윈도우의 문서가 편집되었는지 여부를 지정한다. 이 값을 true로 설정하면 타이틀 바의 아이콘이 회색으로 변한다.

win.isDocumentEdited() macOS

boolean 값을 반환한다. 윈도우의 문서가 편집되었는지 여부를 나타낸다.

win.focusOnWebView()

win.blurWebView()

win.capturePage([rect, opts])

  • rect Rectangle (선택 사항) - 캡처할 영역
  • opts Object (선택 사항)
    • stayHidden boolean (선택 사항) - 페이지를 보이지 않게 유지한다. 기본값은 false.
    • stayAwake boolean (선택 사항) - 시스템이 절전 모드로 들어가지 않게 유지한다. 기본값은 false.

반환값: Promise<NativeImage> - NativeImage로 이행된다.

rect 내의 페이지 스냅샷을 캡처한다. rect를 생략하면 전체 보이는 페이지를 캡처한다. 페이지가 보이지 않는 상태라면 rect가 비어 있을 수 있다. 브라우저 윈도우가 숨겨져 있고 캡처 카운트가 0이 아닌 경우 페이지는 보이는 상태로 간주된다. 페이지를 숨겨진 상태로 유지하려면 stayHidden을 true로 설정해야 한다.

win.loadURL(url[, options])

  • url string
  • options Object (선택 사항)
    • httpReferrer (string | Referrer) (선택 사항) - HTTP 리퍼러 URL.
    • userAgent string (선택 사항) - 요청을 보내는 사용자 에이전트.
    • extraHeaders string (선택 사항) - "\n"으로 구분된 추가 헤더.
    • postData (UploadRawData | UploadFile)[] (선택 사항)
    • baseURLForDataURL string (선택 사항) - 데이터 URL로 로드되는 파일을 위한 베이스 URL (경로 구분자 포함). 이 옵션은 지정된 url이 데이터 URL이고 다른 파일을 로드해야 할 때만 필요하다.

반환값: Promise<void> - 페이지 로드가 완료되면 Promise가 resolve된다 (did-finish-load 참조). 페이지 로드에 실패하면 Promise가 reject된다 (did-fail-load 참조).

이 메서드는 webContents.loadURL(url[, options])와 동일하다.

url은 원격 주소(예: http://) 또는 file:// 프로토콜을 사용한 로컬 HTML 파일 경로일 수 있다.

파일 URL이 올바르게 형식화되었는지 확인하려면 Node의 url.format 메서드를 사용하는 것을 권장한다:

const { BrowserWindow } = require('electron')
const win = new BrowserWindow()

const url = require('url').format({
protocol: 'file',
slashes: true,
pathname: require('node:path').join(__dirname, 'index.html')
})

win.loadURL(url)

URL-encoded 데이터와 함께 POST 요청을 사용해 URL을 로드하려면 다음과 같이 할 수 있다:

const { BrowserWindow } = require('electron')
const win = new BrowserWindow()

win.loadURL('http://localhost:8000/post', {
postData: [{
type: 'rawData',
bytes: Buffer.from('hello=world')
}],
extraHeaders: 'Content-Type: application/x-www-form-urlencoded'
})

win.loadFile(filePath[, options])

  • filePath string
  • options Object (선택 사항)
    • query Record<string, string> (선택 사항) - url.format()에 전달된다.
    • search string (선택 사항) - url.format()에 전달된다.
    • hash string (선택 사항) - url.format()에 전달된다.

반환값 Promise<void> - 페이지 로딩이 완료되면 Promise가 이행된다(did-finish-load 참조). 페이지 로딩에 실패하면 Promise가 거부된다(did-fail-load 참조).

webContents.loadFile과 동일하며, filePath는 애플리케이션 루트를 기준으로 한 HTML 파일 경로여야 한다. 더 자세한 정보는 webContents 문서를 참조한다.

win.reload()

win.reload()webContents.reload()와 동일한 기능을 수행한다.

win.setMenu(menu) Linux Windows

  • menu Menu | null

menu를 윈도우의 메뉴 바로 설정한다.

win.removeMenu() Linux Windows

윈도우의 메뉴 바를 제거한다.

win.setProgressBar(progress[, options])

  • progress Double
  • options Object (선택 사항)
    • mode string Windows - 프로그레스 바의 모드. none, normal, indeterminate, error, paused 중 하나를 선택할 수 있다.

프로그레스 바의 진행 상태 값을 설정한다. 유효한 범위는 [0, 1.0]이다.

진행 상태가 0보다 작으면 프로그레스 바를 제거한다. 진행 상태가 1보다 크면 불확정(indeterminate) 모드로 변경한다.

Linux 플랫폼에서는 Unity 데스크톱 환경만 지원하며, package.json 파일의 desktopName 필드에 *.desktop 파일 이름을 지정해야 한다. 기본적으로 {app.name}.desktop을 가정한다.

Windows에서는 모드를 전달할 수 있다. 허용되는 값은 none, normal, indeterminate, error, paused이다. 모드를 설정하지 않고 setProgressBar를 호출하면(단, 유효 범위 내의 값을 전달할 경우) normal 모드로 간주한다.

win.setOverlayIcon(overlay, description) Windows

  • overlay NativeImage | null - 작업 표시줄 아이콘의 오른쪽 하단에 표시할 아이콘. 이 인자가 null이면 오버레이가 제거된다.
  • description string - 접근성 스크린 리더에 제공될 설명

현재 작업 표시줄 아이콘 위에 16 x 16 픽셀 크기의 오버레이를 설정한다. 주로 애플리케이션 상태를 전달하거나 사용자에게 수동적으로 알림을 보내는 용도로 사용한다.

win.invalidateShadow() macOS

윈도우의 그림자를 무효화하여 현재 윈도우 모양을 기반으로 다시 계산한다.

투명한 BrowserWindows는 macOS에서 시각적 잔상(visual artifacts)을 남길 수 있다. 이 메서드는 애니메이션을 수행할 때와 같은 상황에서 이러한 잔상을 제거하는 데 사용할 수 있다.

win.setHasShadow(hasShadow)

  • hasShadow boolean

윈도우에 그림자를 표시할지 여부를 설정한다.

win.hasShadow()

boolean 타입의 값을 반환한다. 윈도우가 그림자를 가지고 있는지 여부를 나타낸다.

win.setOpacity(opacity) Windows macOS

  • opacity number - 0.0(완전 투명)부터 1.0(완전 불투명) 사이의 값

윈도우의 투명도를 설정한다. Linux에서는 아무 동작도 하지 않는다. 범위를 벗어난 숫자 값은 [0, 1] 범위로 고정된다.

win.getOpacity()

number 타입의 값을 반환한다. 이 값은 0.0(완전히 투명)부터 1.0(완전히 불투명) 사이의 범위를 가진다. 리눅스에서는 항상 1을 반환한다.

win.setShape(rects) Windows Linux 실험적 기능

  • rects Rectangle[] - 윈도우의 모양을 설정한다. 빈 리스트를 전달하면 윈도우를 기본적인 사각형 모양으로 되돌린다.

윈도우 모양을 설정하면 시스템이 그리기와 사용자 상호작용을 허용하는 영역을 정의한다. 지정된 영역 바깥에서는 픽셀이 그려지지 않고, 마우스 이벤트도 등록되지 않는다. 해당 영역 외부에서 발생한 마우스 이벤트는 윈도우가 받지 않으며, 윈도우 뒤에 있는 다른 요소로 전달된다.

win.setThumbarButtons(buttons) Windows

boolean을 반환한다. 버튼이 성공적으로 추가되었는지 여부를 나타낸다.

윈도우의 작업 표시줄 버튼 레이아웃에서 썸네일 이미지에 지정된 버튼 세트로 썸네일 툴바를 추가한다. 썸네일이 성공적으로 추가되었는지 여부를 나타내는 boolean 객체를 반환한다.

썸네일 툴바의 버튼 수는 공간이 제한되어 있으므로 7개를 초과할 수 없다. 썸네일 툴바를 설정하면 플랫폼의 제한으로 인해 툴바를 제거할 수 없다. 그러나 빈 배열로 API를 호출하여 버튼을 지울 수 있다.

buttonsButton 객체의 배열이다:

  • Button 객체
    • icon NativeImage - 썸네일 툴바에 표시되는 아이콘
    • click Function
    • tooltip string (선택 사항) - 버튼의 툴팁 텍스트
    • flags string[] (선택 사항) - 버튼의 특정 상태와 동작을 제어한다. 기본값은 ['enabled']이다.

flags는 다음과 같은 string을 포함할 수 있는 배열이다:

  • enabled - 버튼이 활성화되어 사용자에게 제공된다.
  • disabled - 버튼이 비활성화된다. 버튼은 존재하지만 사용자 동작에 반응하지 않음을 나타내는 시각적 상태를 가진다.
  • dismissonclick - 버튼을 클릭하면 썸네일 윈도우가 즉시 닫힌다.
  • nobackground - 버튼 테두리를 그리지 않고 이미지만 사용한다.
  • hidden - 버튼이 사용자에게 보이지 않는다.
  • noninteractive - 버튼은 활성화되어 있지만 상호작용하지 않는다. 눌린 상태가 표시되지 않는다. 이 값은 버튼이 알림에 사용되는 경우를 위해 제공된다.

win.setThumbnailClip(region) Windows

작업 표시줄에서 윈도우 위로 마우스를 가져갔을 때 보이는 썸네일 이미지로 표시할 윈도우의 영역을 설정한다. 빈 영역을 지정하면 썸네일을 윈도우 전체로 초기화할 수 있다: { x: 0, y: 0, width: 0, height: 0 }.

win.setThumbnailToolTip(toolTip) Windows

  • toolTip string

작업표시줄에서 윈도우 썸네일 위에 마우스를 올렸을 때 표시되는 툴팁을 설정한다.

win.setAppDetails(options) Windows

  • options 객체
    • appId string (선택 사항) - 윈도우의 앱 사용자 모델 ID. 이 값이 설정되어야 다른 옵션들이 효과를 발휘한다.
    • appIconPath string (선택 사항) - 윈도우의 재실행 아이콘.
    • appIconIndex Integer (선택 사항) - appIconPath에 있는 아이콘의 인덱스. appIconPath가 설정되지 않으면 무시된다. 기본값은 0이다.
    • relaunchCommand string (선택 사항) - 윈도우의 재실행 명령어.
    • relaunchDisplayName string (선택 사항) - 윈도우의 재실행 표시 이름.

윈도우의 작업 표시줄 버튼 속성을 설정한다.

참고: relaunchCommandrelaunchDisplayName은 항상 함께 설정해야 한다. 이 두 속성 중 하나라도 설정되지 않으면 둘 다 사용되지 않는다.

win.showDefinitionForSelection() macOS

webContents.showDefinitionForSelection()과 동일한 기능을 수행한다.

win.setIcon(icon) Windows Linux

윈도우 아이콘을 변경한다.

win.setWindowButtonVisibility(visible) macOS

  • visible boolean

윈도우의 트래픽 라이트 버튼(닫기, 최소화, 전체화면 버튼)을 보이게 할지 여부를 설정한다.

win.setAutoHideMenuBar(hide) Windows Linux

  • hide boolean

윈도우의 메뉴 바가 자동으로 숨겨지도록 설정한다. 이 옵션을 활성화하면 사용자가 Alt 키를 누를 때만 메뉴 바가 표시된다.

메뉴 바가 이미 보이는 상태에서 setAutoHideMenuBar(true)를 호출해도 즉시 숨겨지지 않는다.

win.isMenuBarAutoHide() Windows Linux

boolean 값을 반환한다. 메뉴 바가 자동으로 숨겨지는지 여부를 나타낸다.

win.setMenuBarVisibility(visible) Windows Linux

  • visible boolean

메뉴 바의 표시 여부를 설정한다. 메뉴 바가 자동으로 숨겨진 상태라도, 사용자는 Alt 키를 한 번 눌러 메뉴 바를 다시 표시할 수 있다.

win.isMenuBarVisible() Windows Linux

boolean 타입을 반환한다. 메뉴 바가 보이는지 여부를 나타낸다.

win.setVisibleOnAllWorkspaces(visible[, options]) macOS Linux

  • visible boolean
  • options Object (선택 사항)
    • visibleOnFullScreen boolean (선택 사항) macOS - 윈도우가 전체 화면 윈도우 위에 표시될지 여부를 설정한다.
    • skipTransformProcessType boolean (선택 사항) macOS - setVisibleOnAllWorkspaces를 호출하면 기본적으로 UIElementApplication과 ForegroundApplication 간의 프로세스 타입 변환이 발생한다. 이는 올바른 동작을 보장하기 위함이다. 그러나 이로 인해 호출할 때마다 짧은 시간 동안 윈도우와 독이 사라질 수 있다. 이미 UIElementApplication 타입인 윈도우의 경우, skipTransformProcessType에 true를 전달해 이 변환을 건너뛸 수 있다.

윈도우가 모든 작업 공간에서 보일지 여부를 설정한다.

참고: 이 API는 Windows에서는 아무런 동작을 하지 않는다.

win.isVisibleOnAllWorkspaces() macOS Linux

boolean 타입의 값을 반환한다. 윈도우가 모든 작업 공간에서 보이는지 여부를 나타낸다.

참고: 이 API는 윈도우 운영체제에서 항상 false를 반환한다.

win.setIgnoreMouseEvents(ignore[, options])

  • ignore boolean
  • options Object (선택 사항)
    • forward boolean (선택 사항) macOS Windows - true로 설정하면 마우스 이동 메시지를 Chromium으로 전달하여 mouseleave와 같은 마우스 관련 이벤트를 활성화한다. 이 옵션은 ignore가 true일 때만 사용된다. ignore가 false라면, 이 값과 상관없이 전달 기능은 항상 비활성화된다.

윈도우가 모든 마우스 이벤트를 무시하도록 설정한다.

이 윈도우에서 발생한 모든 마우스 이벤트는 아래에 있는 윈도우로 전달된다. 하지만 이 윈도우가 포커스를 가지고 있다면, 키보드 이벤트는 여전히 받을 수 있다.

win.setContentProtection(enable) macOS Windows

  • enable boolean

윈도우의 콘텐츠가 다른 앱에 의해 캡처되는 것을 방지한다.

macOS에서는 NSWindow의 sharingType을 NSWindowSharingNone으로 설정한다. Windows에서는 SetWindowDisplayAffinity를 WDA_EXCLUDEFROMCAPTURE와 함께 호출한다. Windows 10 버전 2004 이상에서는 윈도우가 캡처에서 완전히 제외되며, 이전 버전의 Windows에서는 WDA_MONITOR가 적용된 것처럼 검은색 윈도우가 캡처된다.

win.setFocusable(focusable) macOS Windows

  • focusable boolean

윈도우가 포커스를 받을 수 있는지 여부를 변경한다.

macOS에서는 윈도우에서 포커스를 제거하지 않는다.

win.isFocusable() macOS Windows

boolean 값을 반환한다. 윈도우가 포커스를 받을 수 있는지 여부를 나타낸다.

win.setParentWindow(parent)

  • parent BrowserWindow | null

현재 윈도우의 부모 윈도우를 parent로 설정한다. null을 전달하면 현재 윈도우를 최상위 윈도우로 변경한다.

win.getParentWindow()

BrowserWindow | null 타입의 값을 반환한다. 부모 윈도우가 존재하면 해당 윈도우를 반환하고, 부모 윈도우가 없으면 null을 반환한다.

win.getChildWindows()

BrowserWindow[] 타입의 모든 자식 윈도우를 반환한다.

win.setAutoHideCursor(autoHide) macOS

  • autoHide boolean

타이핑 시 커서를 숨길지 여부를 제어한다.

win.selectPreviousTab() macOS

네이티브 탭이 활성화되어 있고 윈도우에 다른 탭이 존재할 때, 이전 탭을 선택한다.

win.selectNextTab() macOS

네이티브 탭 기능이 활성화된 상태에서 윈도우에 다른 탭이 있을 경우, 다음 탭을 선택한다.

win.showAllTabs() macOS

네이티브 탭 기능이 활성화된 상태에서 탭 개요를 보여주거나 숨긴다.

win.mergeAllWindows() macOS

네이티브 탭 기능이 활성화되어 있고 열려 있는 윈도우가 둘 이상일 때, 모든 윈도우를 하나의 윈도우로 합치며 여러 탭으로 구성한다.

win.moveTabToNewWindow() macOS

네이티브 탭 기능이 활성화되어 있고 현재 윈도우에 둘 이상의 탭이 있는 경우, 현재 탭을 새로운 윈도우로 이동한다.

win.toggleTabBar() macOS

네이티브 탭 기능이 활성화되어 있고 현재 윈도우에 탭이 하나만 있는 경우, 탭 바의 가시성을 토글한다.

win.addTabbedWindow(browserWindow) macOS

  • browserWindow BrowserWindow

현재 윈도우에 탭으로 다른 윈도우를 추가한다. 추가된 탭은 해당 윈도우 인스턴스의 탭 뒤에 위치한다.

win.setVibrancy(type) macOS

  • type string | null - titlebar, selection, menu, popover, sidebar, header, sheet, window, hud, fullscreen-ui, tooltip, content, under-window, under-page 중 하나를 지정할 수 있다. 자세한 내용은 macOS 문서를 참고한다.

브라우저 윈도우에 비브란시 효과를 추가한다. null이나 빈 문자열을 전달하면 윈도우의 비브란시 효과를 제거한다.

win.setBackgroundMaterial(material) Windows

  • material string
    • auto - 데스크톱 윈도우 매니저(DWM)가 이 윈도우의 시스템 드로우 백드롭 재질을 자동으로 결정한다. 기본값이다.
    • none - 시스템 백드롭을 그리지 않는다.
    • mica - 장기간 실행되는 윈도우에 해당하는 백드롭 재질 효과를 그린다.
    • acrylic - 일시적으로 실행되는 윈도우에 해당하는 백드롭 재질 효과를 그린다.
    • tabbed - 탭 형식의 타이틀 바를 가진 윈도우에 해당하는 백드롭 재질 효과를 그린다.

이 메서드는 브라우저 윈도우의 시스템 드로우 백그라운드 재질을 설정한다. 여기에는 클라이언트 영역이 아닌 부분도 포함된다.

자세한 내용은 Windows 문서를 참고한다.

참고: 이 메서드는 Windows 11 22H2 이상에서만 지원된다.

win.setWindowButtonPosition(position) macOS

프레임 없는 윈도우에서 트래픽 라이트 버튼의 위치를 커스텀하게 설정한다.
null을 전달하면 기본 위치로 초기화된다.

win.getWindowButtonPosition() macOS

Point | null 타입의 값을 반환한다. 이 함수는 프레임 없는 윈도우에서 트래픽 라이트 버튼의 커스텀 위치를 반환한다. 커스텀 위치가 설정되지 않은 경우 null을 반환한다.

win.setTouchBar(touchBar) macOS

  • touchBar TouchBar | null

현재 윈도우의 터치 바 레이아웃을 설정한다. null이나 undefined를 지정하면 터치 바를 지운다. 이 메서드는 기계에 터치 바가 있을 때만 효과가 있다.

참고: TouchBar API는 현재 실험적이며, 향후 Electron 릴리스에서 변경되거나 제거될 수 있다.

win.setBrowserView(browserView) 실험적 더 이상 사용되지 않음

  • browserView BrowserView | null - browserViewwin에 부착한다.
    다른 BrowserView가 이미 부착되어 있다면, 해당 뷰는 이 윈도우에서 제거된다.

참고
BrowserView 클래스는 더 이상 사용되지 않으며, 새로운 WebContentsView 클래스로 대체되었다.

win.getBrowserView() 실험적 기능 사용 중단됨

BrowserView | null을 반환한다. win에 연결된 BrowserView를 반환하며, 연결된 BrowserView가 없으면 null을 반환한다. 여러 개의 BrowserView가 연결된 경우 에러를 발생시킨다.

참고 BrowserView 클래스는 사용 중단되었으며, 새로운 WebContentsView 클래스로 대체되었다.

win.addBrowserView(browserView) 실험적 사용 중단됨

다중 브라우저 뷰를 지원하기 위해 setBrowserView를 대체하는 새로운 API이다.

참고 BrowserView 클래스는 사용 중단되었으며, 새로운 WebContentsView 클래스로 대체되었다.

win.removeBrowserView(browserView) 실험적 사용 중단됨

참고 BrowserView 클래스는 더 이상 사용되지 않으며, 새로운 WebContentsView 클래스로 대체되었다.

win.setTopBrowserView(browserView) 실험적 사용 중단

win에 연결된 다른 BrowserView들 위로 browserView를 올린다. 만약 browserViewwin에 연결되어 있지 않으면 오류를 발생시킨다.

참고 BrowserView 클래스는 사용 중단되었으며, 새로운 WebContentsView 클래스로 대체되었다.

win.getBrowserViews() 실험적 더 이상 사용되지 않음

BrowserView[]를 반환한다. 이 배열은 addBrowserView 또는 setBrowserView로 연결된 모든 BrowserView를 z-index 기준으로 정렬한 것이다. 가장 상위에 있는 BrowserView는 배열의 마지막 요소다.

참고 BrowserView 클래스는 더 이상 사용되지 않으며, 새로운 WebContentsView 클래스로 대체되었다.

win.setTitleBarOverlay(options) Windows Linux

  • options Object
    • color String (선택 사항) - 윈도우 컨트롤 오버레이가 활성화되었을 때의 CSS 색상.
    • symbolColor String (선택 사항) - 윈도우 컨트롤 오버레이가 활성화되었을 때 심볼의 CSS 색상.
    • height Integer (선택 사항) - 타이틀 바와 윈도우 컨트롤 오버레이의 높이(픽셀 단위).

이미 윈도우 컨트롤 오버레이가 활성화된 윈도우에서, 이 메서드는 타이틀 바 오버레이의 스타일을 업데이트한다.

Linux에서는 symbolColor가 명시적으로 설정되지 않은 경우, color와 최소 접근성 대비를 갖도록 자동으로 계산된다.