chrome.app.window

설명

chrome.app.window API를 사용하여 창을 만듭니다. 창에는 제목 표시줄과 크기 컨트롤이 있는 프레임이 있습니다(선택사항). Chrome 브라우저 창과 연결되지 않습니다. 이러한 옵션의 데모는 창 상태 샘플을 참고하세요.

유형

AppWindow

속성

  • contentWindow

    창

    생성된 하위 요소의 JavaScript 'window' 객체입니다.

  • id

    문자열

    창이 생성된 ID입니다.

  • innerBounds

    창 장식을 포함하지 않는 창 콘텐츠의 위치, 크기, 제약 조건입니다. 이 속성은 Chrome 36의 새로운 기능입니다.

  • outerBounds

    창의 위치, 크기, 제약조건으로, 제목 표시줄 및 프레임과 같은 창 장식이 포함됩니다. 이 속성은 Chrome 36의 새로운 기능입니다.

  • clearAttention

    void

    창에 주의를 기울입니다.

    clearAttention 함수는 다음과 같습니다.

    () => {...}

  • 닫기

    void

    창을 닫습니다.

    close 함수는 다음과 같습니다.

    () => {...}

  • drawAttention

    void

    창에 주의를 집중시킵니다.

    drawAttention 함수는 다음과 같습니다.

    () => {...}

  • 포커스

    void

    창에 포커스를 맞춥니다.

    focus 함수는 다음과 같습니다.

    () => {...}

  • 전체 화면

    void

    창을 전체 화면으로 표시합니다.

    사용자는 ESC를 눌러 창을 복원할 수 있습니다. 애플리케이션은 app.window.fullscreen.overrideEsc 권한을 요청하고 다음과 같이 keydown 및 keyup 핸들러에서 .preventDefault()를 호출하여 이벤트를 취소함으로써 ESC를 누를 때 전체 화면 상태가 종료되지 않도록 할 수 있습니다.

    window.onkeydown = window.onkeyup = function(e) { if (e.keyCode == 27 /* ESC *\/) { e.preventDefault(); } };

    window.fullscreen()는 전체 창을 전체 화면으로 전환하며 사용자 동작이 필요하지 않습니다. HTML5 전체 화면 API를 사용하여 전체 화면 모드로 전환할 수도 있습니다 (자세한 내용은 웹 API 참고).

    fullscreen 함수는 다음과 같습니다.

    () => {...}

  • getBounds

    void

    지원 중단됨

    innerBounds 또는 outerBounds를 사용하세요.

    창의 내부 경계를 ContentBounds 객체로 가져옵니다.

    getBounds 함수는 다음과 같습니다.

    () => {...}

  • hide

    void

    창을 숨깁니다. 창이 이미 숨겨져 있는 경우 아무 작업도 수행하지 않습니다.

    hide 함수는 다음과 같습니다.

    () => {...}

  • isAlwaysOnTop

    void

    창이 항상 맨 위에 표시되나요?

    isAlwaysOnTop 함수는 다음과 같습니다.

    () => {...}

    • returns

      부울

  • isFullscreen

    void

    창이 전체 화면인가요? 창이 전체 화면으로 생성되었거나 AppWindow 또는 HTML5 전체 화면 API를 통해 전체 화면으로 설정된 경우 true입니다.

    isFullscreen 함수는 다음과 같습니다.

    () => {...}

    • returns

      부울

  • isMaximized

    void

    창이 최대화되어 있나요?

    isMaximized 함수는 다음과 같습니다.

    () => {...}

    • returns

      부울

  • isMinimized

    void

    창이 최소화되어 있나요?

    isMinimized 함수는 다음과 같습니다.

    () => {...}

    • returns

      부울

  • maximize

    void

    창을 최대화합니다.

    maximize 함수는 다음과 같습니다.

    () => {...}

  • 최소화

    void

    창을 최소화합니다.

    minimize 함수는 다음과 같습니다.

    () => {...}

  • moveTo

    void

    Chrome 43부터 지원 중단됨

    outerBounds를 사용합니다.

    창을 (left, top) 위치로 이동합니다.

    moveTo 함수는 다음과 같습니다.

    (left: number, top: number) => {...}

    • 왼쪽

      숫자

    • 상단

      숫자

  • resizeTo

    void

    Chrome 43부터 지원 중단됨

    outerBounds를 사용합니다.

    창 크기를 widthxheight픽셀로 조절합니다.

    resizeTo 함수는 다음과 같습니다.

    (width: number, height: number) => {...}

    • 너비

      숫자

    • 높이

      숫자

  • 복원

    void

    창을 복원하여 최대화, 최소화 또는 전체 화면 상태를 종료합니다.

    restore 함수는 다음과 같습니다.

    () => {...}

  • setAlwaysOnTop

    void

    창이 다른 대부분의 창 위에 표시되어야 하는지 설정합니다. alwaysOnTopWindows 권한이 필요합니다.

    setAlwaysOnTop 함수는 다음과 같습니다.

    (alwaysOnTop: boolean) => {...}

    • alwaysOnTop

      부울

  • setBounds

    void

    지원 중단됨

    innerBounds 또는 outerBounds를 사용하세요.

    창의 내부 경계를 설정합니다.

    setBounds 함수는 다음과 같습니다.

    (bounds: ContentBounds) => {...}

  • setVisibleOnAllWorkspaces

    void

    모든 작업공간에 창을 표시할지 설정합니다. (이를 지원하는 플랫폼에만 해당)

    setVisibleOnAllWorkspaces 함수는 다음과 같습니다.

    (alwaysVisible: boolean) => {...}

    • alwaysVisible

      부울

  • 표시

    void

    창을 표시합니다. 창이 이미 표시되어 있는 경우 아무 작업도 수행하지 않습니다. focused가 true로 설정되거나 생략된 경우 창에 포커스를 맞춥니다.

    show 함수는 다음과 같습니다.

    (focused?: boolean) => {...}

    • 집중

      불리언 선택사항

Bounds

속성

  • 높이

    숫자

    이 속성은 콘텐츠 또는 창의 현재 높이를 읽거나 쓰는 데 사용할 수 있습니다.

  • 왼쪽

    숫자

    이 속성은 콘텐츠 또는 창의 현재 X 좌표를 읽거나 쓰는 데 사용할 수 있습니다.

  • maxHeight

    number 선택사항

    이 속성은 콘텐츠 또는 창의 현재 최대 높이를 읽거나 쓰는 데 사용할 수 있습니다. null 값은 '지정되지 않음'을 나타냅니다.

  • maxWidth

    number 선택사항

    이 속성은 콘텐츠 또는 창의 현재 최대 너비를 읽거나 쓰는 데 사용할 수 있습니다. null 값은 '지정되지 않음'을 나타냅니다.

  • minHeight

    number 선택사항

    이 속성은 콘텐츠 또는 창의 현재 최소 높이를 읽거나 쓰는 데 사용할 수 있습니다. null 값은 '지정되지 않음'을 나타냅니다.

  • minWidth

    number 선택사항

    이 속성은 콘텐츠 또는 창의 현재 최소 너비를 읽거나 쓰는 데 사용할 수 있습니다. null 값은 '지정되지 않음'을 나타냅니다.

  • 상단

    숫자

    이 속성은 콘텐츠 또는 창의 현재 Y 좌표를 읽거나 쓰는 데 사용할 수 있습니다.

  • 너비

    숫자

    이 속성은 콘텐츠 또는 창의 현재 너비를 읽거나 쓰는 데 사용할 수 있습니다.

  • setMaximumSize

    void

    콘텐츠 또는 창의 최대 크기 제약 조건을 설정합니다. 최대 너비 또는 높이를 null로 설정하여 제약 조건을 삭제할 수 있습니다. undefined 값은 제약 조건을 변경하지 않고 그대로 둡니다.

    setMaximumSize 함수는 다음과 같습니다.

    (maxWidth: number, maxHeight: number) => {...}

    • maxWidth

      숫자

    • maxHeight

      숫자

  • setMinimumSize

    void

    콘텐츠 또는 창의 최소 크기 제약 조건을 설정합니다. 최소 너비 또는 높이를 null로 설정하여 제약 조건을 삭제할 수 있습니다. undefined 값은 제약 조건을 변경하지 않고 그대로 둡니다.

    setMinimumSize 함수는 다음과 같습니다.

    (minWidth: number, minHeight: number) => {...}

    • minWidth

      숫자

    • minHeight

      숫자

  • setPosition

    void

    콘텐츠 또는 창의 왼쪽 및 상단 위치를 설정합니다.

    setPosition 함수는 다음과 같습니다.

    (left: number, top: number) => {...}

    • 왼쪽

      숫자

    • 상단

      숫자

  • setSize

    void

    콘텐츠 또는 창의 너비와 높이를 설정합니다.

    setSize 함수는 다음과 같습니다.

    (width: number, height: number) => {...}

    • 너비

      숫자

    • 높이

      숫자

BoundsSpecification

속성

  • 높이

    number 선택사항

    콘텐츠 또는 창의 높이입니다.

  • 왼쪽

    number 선택사항

    콘텐츠 또는 창의 X 좌표입니다.

  • maxHeight

    number 선택사항

    콘텐츠 또는 창의 최대 높이입니다.

  • maxWidth

    number 선택사항

    콘텐츠 또는 창의 최대 너비입니다.

  • minHeight

    number 선택사항

    콘텐츠 또는 창의 최소 높이입니다.

  • minWidth

    number 선택사항

    콘텐츠 또는 창의 최소 너비입니다.

  • 상단

    number 선택사항

    콘텐츠 또는 창의 Y 좌표입니다.

  • 너비

    number 선택사항

    콘텐츠 또는 창의 너비입니다.

ContentBounds

속성

  • 높이

    number 선택사항

  • 왼쪽

    number 선택사항

  • 상단

    number 선택사항

  • 너비

    number 선택사항

CreateWindowOptions

속성

  • alwaysOnTop

    불리언 선택사항

    true이면 창이 다른 대부분의 창 위에 표시됩니다. 이러한 창이 여러 개 있는 경우 현재 포커스가 맞춰진 창이 포그라운드에 표시됩니다. alwaysOnTopWindows 권한이 필요합니다. 기본값은 false입니다.

    생성 후 이 속성을 변경하려면 창에서 setAlwaysOnTop()를 호출합니다.

  • bounds

    ContentBounds 선택사항

    지원 중단됨

    innerBounds 또는 outerBounds를 사용하세요.

    창에 있는 콘텐츠의 크기 및 위치 (제목 표시줄 제외)입니다. ID도 지정되어 있고 일치하는 ID가 있는 창이 이전에 표시된 경우 창의 기억된 경계가 대신 사용됩니다.

  • 집중

    불리언 선택사항

    true인 경우 창이 생성될 때 포커스가 지정됩니다. 기본값은 true입니다.

  • 프레임

    문자열 | FrameOptions 선택사항

    프레임 유형: none 또는 chrome (기본값은 chrome). none의 경우 -webkit-app-region CSS 속성을 사용하여 앱 창에 드래그 가능성을 적용할 수 있습니다. -webkit-app-region: drag를 사용하여 영역을 드래그 가능으로 표시할 수 있습니다. no-drag를 사용하여 중첩된 요소에서 이 스타일을 사용 중지할 수 있습니다.

    FrameOptions 사용은 M36의 새로운 기능입니다.

  • 히든

    불리언 선택사항

    true인 경우 창이 숨겨진 상태로 생성됩니다. 창이 생성되면 창에서 show()를 호출하여 창을 표시합니다. 기본값은 false입니다.

  • 아이콘

    문자열 선택사항

    Chrome 54 이상

    창 아이콘의 URL입니다. showInShelf가 true로 설정된 경우 창에 자체 아이콘이 있을 수 있습니다. URL은 전역 URL 또는 확장 프로그램 로컬 URL이어야 합니다.

  • id

    문자열 선택사항

    창을 식별하는 ID입니다. 이 ID는 창의 크기와 위치를 기억하고 나중에 동일한 ID의 창이 열릴 때 해당 도형을 복원하는 데 사용됩니다. 동일한 ID를 가진 다른 창이 이미 있는 상태에서 지정된 ID를 가진 창이 생성되면 새 창을 만드는 대신 현재 열려 있는 창에 포커스가 맞춰집니다.

  • innerBounds

    BoundsSpecification 선택사항

    창 콘텐츠의 초기 위치, 초기 크기, 제약 조건을 지정하는 데 사용됩니다 (창 장식 제외). id도 지정되어 있고 일치하는 id가 있는 창이 이전에 표시된 경우 기억된 경계가 대신 사용됩니다.

    내부 경계와 외부 경계 사이의 패딩은 OS에 의해 결정됩니다. 따라서 innerBounds 및 outerBounds 모두에 동일한 경계 속성을 설정하면 오류가 발생합니다.

    이 속성은 Chrome 36의 새로운 기능입니다.

  • maxHeight

    number 선택사항

    지원 중단됨

    innerBounds 또는 outerBounds를 사용하세요.

    창의 최대 높이입니다.

  • maxWidth

    number 선택사항

    지원 중단됨

    innerBounds 또는 outerBounds를 사용하세요.

    창의 최대 너비입니다.

  • minHeight

    number 선택사항

    지원 중단됨

    innerBounds 또는 outerBounds를 사용하세요.

    창의 최소 높이입니다.

  • minWidth

    number 선택사항

    지원 중단됨

    innerBounds 또는 outerBounds를 사용하세요.

    창의 최소 너비입니다.

  • outerBounds

    BoundsSpecification 선택사항

    창의 초기 위치, 초기 크기, 제약 조건 (제목 표시줄 및 프레임과 같은 창 장식 포함)을 지정하는 데 사용됩니다. id도 지정되어 있고 일치하는 id가 있는 창이 이전에 표시된 경우 기억된 경계가 대신 사용됩니다.

    내부 경계와 외부 경계 사이의 패딩은 OS에 의해 결정됩니다. 따라서 innerBounds 및 outerBounds 모두에 동일한 경계 속성을 설정하면 오류가 발생합니다.

    이 속성은 Chrome 36의 새로운 기능입니다.

  • resizable

    불리언 선택사항

    true인 경우 사용자가 창 크기를 조절할 수 있습니다. 기본값은 true입니다.

  • showInShelf

    불리언 선택사항

    Chrome 54 이상

    true인 경우 창에 자체 shelf 아이콘이 있습니다. 그렇지 않으면 창이 앱과 연결된 다른 창과 함께 shelf에 그룹화됩니다. 기본값은 false입니다. showInShelf가 true로 설정된 경우 창의 ID를 지정해야 합니다.

  • 싱글톤

    불리언 선택사항

    지원 중단됨

    동일한 ID를 가진 여러 창은 더 이상 지원되지 않습니다.

    기본적으로 창의 ID를 지정하면 동일한 ID를 가진 다른 창이 아직 없는 경우에만 창이 생성됩니다. 동일한 ID를 가진 창이 이미 있으면 대신 해당 창이 활성화됩니다. 동일한 ID로 여러 창을 만들려면 이 속성을 false로 설정하면 됩니다.

  • 주

    주 선택사항

    창의 초기 상태로, 이미 전체 화면, 최대화 또는 최소화된 상태로 만들 수 있습니다. 기본값은 'normal'입니다.

  • 유형

    WindowType 선택사항

    Chrome 45 이상 Chrome 69부터 지원 중단됨

    모든 앱 창에서 'shell' 창 유형을 사용합니다.

    만들 창의 유형입니다.

  • visibleOnAllWorkspaces

    불리언 선택사항

    true이고 플랫폼에서 지원하는 경우 창이 모든 작업공간에 표시됩니다.

FrameOptions

속성

  • activeColor

    문자열 선택사항

    활성 상태일 때 창의 프레임 색상을 설정할 수 있습니다. 프레임 색상은 프레임 유형이 chrome인 경우에만 사용할 수 있습니다.

    프레임 색상은 프레임 유형이 chrome인 경우에만 사용할 수 있습니다.

    프레임 색상 지정은 Chrome 36의 새로운 기능입니다.

  • 색상

    문자열 선택사항

    프레임 색상을 설정할 수 있습니다. 프레임 색상은 프레임 유형이 chrome인 경우에만 사용할 수 있습니다.

    프레임 색상 지정은 Chrome 36의 새로운 기능입니다.

  • inactiveColor

    문자열 선택사항

    비활성 상태일 때 창의 프레임 색상을 활성 색상과 다르게 설정할 수 있습니다. 프레임 색상은 프레임 유형이 chrome인 경우에만 사용할 수 있습니다.

    inactiveColor는 color와 함께 사용해야 합니다.

    프레임 색상 지정은 Chrome 36의 새로운 기능입니다.

  • 유형

    문자열 선택사항

    프레임 유형: none 또는 chrome (기본값: chrome)

    none의 경우 -webkit-app-region CSS 속성을 사용하여 앱 창에 드래그 가능성을 적용할 수 있습니다.

    -webkit-app-region: drag를 사용하여 영역을 드래그 가능으로 표시할 수 있습니다. no-drag를 사용하여 중첩된 요소에서 이 스타일을 사용 중지할 수 있습니다.

State

창 상태: 일반, 전체 화면, 최대화, 최소화

열거형

"normal"

"fullscreen"

"maximized"

"minimized"

WindowType

Chrome 45 이상

만들려는 창의 유형을 지정합니다.

열거형

'shell'
기본 창 유형입니다.

'panel'
OS 관리 창 (지원 중단됨)

메서드

canSetVisibleOnAllWorkspaces()

chrome.app.window.canSetVisibleOnAllWorkspaces(): boolean

현재 플랫폼이 모든 작업공간에 창을 표시하는 것을 지원하는지 여부입니다.

반환 값

  • 부울

create()

Promise
chrome.app.window.create(
  url: string,
  options?: CreateWindowOptions,
  callback?: function,
)
: Promise<AppWindow>

창의 크기와 위치는 다양한 방식으로 지정할 수 있습니다. 가장 간단한 옵션은 아무것도 지정하지 않는 것입니다. 이 경우 기본 크기와 플랫폼에 따른 위치가 사용됩니다.

창의 위치, 크기, 제약 조건을 설정하려면 innerBounds 또는 outerBounds 속성을 사용합니다. 내부 경계에는 창 장식이 포함되지 않습니다. 외부 경계에는 창의 제목 표시줄과 프레임이 포함됩니다. 내부 경계와 외부 경계 사이의 패딩은 OS에 의해 결정됩니다. 따라서 내부 경계와 외부 경계 모두에 동일한 속성을 설정하면 오류로 간주됩니다 (예: innerBounds.left 및 outerBounds.left 모두 설정).

창의 위치를 자동으로 기억하려면 창에 ID를 지정하면 됩니다. 창에 ID가 있는 경우 이 ID는 창이 이동하거나 크기가 조절될 때마다 창의 크기와 위치를 기억하는 데 사용됩니다. 이 크기와 위치는 동일한 ID를 가진 창을 다음에 열 때 지정된 경계 대신 사용됩니다. 기억된 기본 위치가 아닌 다른 위치에 ID가 있는 창을 열어야 하는 경우 창을 숨긴 상태로 만들고 원하는 위치로 이동한 후 표시할 수 있습니다.

매개변수

  • URL

    문자열

  • 옵션

    CreateWindowOptions 선택사항

  • callback

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (createdWindow: AppWindow) => void

반환 값

  • Promise<AppWindow>

    Chrome 117 이상

    프로미스는 Manifest V3 이상에서만 지원되며 다른 플랫폼에서는 콜백을 사용해야 합니다.

current()

chrome.app.window.current(): AppWindow | undefined

현재 스크립트 컨텍스트 (예: JavaScript 'window' 객체)의 AppWindow 객체를 반환합니다. 다른 페이지의 스크립트 컨텍스트 핸들에서도 호출할 수 있습니다(예: otherWindow.chrome.app.window.current()).

반환 값

get()

chrome.app.window.get(
  id: string,
)
: AppWindow | undefined

지정된 ID로 AppWindow를 가져옵니다. 지정된 ID의 창이 없으면 null이 반환됩니다. 이 메서드는 Chrome 33의 새로운 기능입니다.

매개변수

  • id

    문자열

반환 값

getAll()

chrome.app.window.getAll(): AppWindow[]

현재 생성된 모든 앱 창의 배열을 가져옵니다. 이 메서드는 Chrome 33의 새로운 기능입니다.

반환 값

이벤트

onBoundsChanged

chrome.app.window.onBoundsChanged.addListener(
  callback: function,
)

창 크기가 조절될 때 실행됩니다.

매개변수

  • callback

    함수

    callback 매개변수는 다음과 같습니다.

    () => void

onClosed

chrome.app.window.onClosed.addListener(
  callback: function,
)

창이 닫힐 때 실행됩니다. 이 이벤트는 닫히는 창이 아닌 다른 창(예: 백그라운드 페이지)에서 수신 대기해야 합니다. 이벤트가 실행될 때 닫히는 창이 해체되는 과정에 있기 때문에 창의 스크립트 컨텍스트에 있는 모든 API가 작동하지는 않습니다.

매개변수

  • callback

    함수

    callback 매개변수는 다음과 같습니다.

    () => void

onFullscreened

chrome.app.window.onFullscreened.addListener(
  callback: function,
)

창이 전체 화면으로 표시될 때(AppWindow 또는 HTML5 API를 통해) 실행됩니다.

매개변수

  • callback

    함수

    callback 매개변수는 다음과 같습니다.

    () => void

onMaximized

chrome.app.window.onMaximized.addListener(
  callback: function,
)

창이 최대화되면 실행됩니다.

매개변수

  • callback

    함수

    callback 매개변수는 다음과 같습니다.

    () => void

onMinimized

chrome.app.window.onMinimized.addListener(
  callback: function,
)

창이 최소화될 때 실행됩니다.

매개변수

  • callback

    함수

    callback 매개변수는 다음과 같습니다.

    () => void

onRestored

chrome.app.window.onRestored.addListener(
  callback: function,
)

창이 최소화 또는 최대화 상태에서 복원될 때 실행됩니다.

매개변수

  • callback

    함수

    callback 매개변수는 다음과 같습니다.

    () => void