chrome.app.window

Описание

Для создания окон используйте API chrome.app.window. У окон может быть рамка со строкой заголовка и элементами управления размером. Они не связаны с окнами браузера Chrome. Примеры использования этих параметров можно найти в образце кода Window State.

Типы

AppWindow

Свойства

  • contentWindow

    Окно

    Объект window JavaScript для созданного дочернего элемента.

  • id

    string

    Идентификатор, с которым было создано окно.

  • innerBounds

    Положение, размер и ограничения контента окна, не включающего элементы оформления. Это свойство появилось в Chrome 36.

  • outerBounds

    Положение, размер и ограничения окна, включая его оформление, например строку заголовка и рамку. Это свойство появилось в Chrome 36.

  • clearAttention

    void

    Очистить внимание к окну.

    Функция clearAttention выглядит следующим образом:

    () => {...}

  • закрыть

    void

    Закройте окно.

    Функция close выглядит следующим образом:

    () => {...}

  • drawAttention

    void

    Привлеките внимание к окну.

    Функция drawAttention выглядит следующим образом:

    () => {...}

  • фокус

    void

    Перейдите к окну.

    Функция focus выглядит следующим образом:

    () => {...}

  • полноэкранный режим

    void

    Развернуть окно на весь экран.

    Пользователь сможет восстановить окно, нажав клавишу Esc. Приложение может запретить выход из полноэкранного режима при нажатии клавиши Esc, запросив разрешение app.window.fullscreen.overrideEsc и отменив событие с помощью вызова .preventDefault() в обработчиках keydown и keyup, как показано ниже.

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

    Примечание. window.fullscreen() переводит в полноэкранный режим все окно и не требует жеста пользователя. Для перехода в полноэкранный режим также можно использовать HTML5 Fullscreen API (подробнее об этом читайте в статье Web APIs).

    Функция fullscreen выглядит следующим образом:

    () => {...}

  • getBounds

    void

    Поддержка прекращена

    Используйте innerBounds или outerBounds.

    Получить внутренние границы окна в виде объекта ContentBounds.

    Функция getBounds выглядит следующим образом:

    () => {...}

  • скрыть

    void

    Скрыть окно. Если окно уже скрыто, ничего не происходит.

    Функция hide выглядит следующим образом:

    () => {...}

  • isAlwaysOnTop

    void

    Окно всегда находится поверх других?

    Функция isAlwaysOnTop выглядит следующим образом:

    () => {...}

    • Возвращает

      Логическое значение

  • isFullscreen

    void

    Окно открыто в полноэкранном режиме? Это значение будет истинным, если окно было создано в полноэкранном режиме или переведено в него с помощью API AppWindow или HTML5.

    Функция isFullscreen выглядит следующим образом:

    () => {...}

    • Возвращает

      Логическое значение

  • isMaximized

    void

    Окно развернуто?

    Функция isMaximized выглядит следующим образом:

    () => {...}

    • Возвращает

      Логическое значение

  • isMinimized

    void

    Окно свернуто?

    Функция isMinimized выглядит следующим образом:

    () => {...}

    • Возвращает

      Логическое значение

  • развернуть

    void

    Разверните окно.

    Функция maximize выглядит следующим образом:

    () => {...}

  • свернуть

    void

    Свернуть окно.

    Функция minimize выглядит следующим образом:

    () => {...}

  • moveTo

    void

    Устарело начиная с Chrome 43

    Используйте outerBounds.

    Переместить окно в позицию (left, top).

    Функция moveTo выглядит следующим образом:

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

    • влево

      число

    • верхняя

      число

  • resizeTo

    void

    Устарело начиная с Chrome 43

    Используйте outerBounds.

    Изменить размер окна на width x height пикселей.

    Функция 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.

    Размер и положение контента в окне (без строки заголовка). Если также указан идентификатор и окно с соответствующим идентификатором уже показывалось, будут использоваться сохраненные границы окна.

  • сосредоточенность

    Логическое значение (необязательно)

    Если задано значение True, окно будет в фокусе при создании. По умолчанию используется значение true.

  • рамка

    string | FrameOptions optional

    Тип фрейма: none или chrome (по умолчанию используется chrome). Для none можно использовать свойство CSS -webkit-app-region, чтобы сделать окно приложения перетаскиваемым. -webkit-app-region: drag можно использовать, чтобы сделать регионы перетаскиваемыми. С помощью no-drag можно отключить этот стиль для вложенных элементов.

    Использование FrameOptions – это новая функция в M36.

  • не отображается

    Логическое значение (необязательно)

    Если задано значение true, окно будет создано в скрытом состоянии. Вызовите метод show() для окна, чтобы показать его после создания. Значение по умолчанию – false.

  • значок "?"

    Строка (необязательно)

    Chrome 54 и более поздних версий;

    URL значка окна. У окна может быть собственный значок, если для параметра showInShelf задано значение true. Это должен быть глобальный URL или локальный URL расширения.

  • id

    Строка (необязательно)

    Идентификатор окна. Оно будет использоваться для запоминания размера и положения окна и восстановления этой геометрии, когда позже будет открыто окно с тем же идентификатором. Если окно с определенным идентификатором создается, когда уже существует другое окно с таким же идентификатором, фокус будет перенесен на открытое окно, а не на новое.

  • innerBounds

    BoundsSpecification необязательный

    Используется для указания начального положения, начального размера и ограничений содержимого окна (за исключением элементов оформления окна). Если также указан параметр id и окно с соответствующим значением id уже показывалось, будут использоваться сохраненные границы.

    Обратите внимание, что отступ между внутренними и внешними границами определяется ОС. Поэтому, если вы зададите одинаковые границы для innerBounds и outerBounds, возникнет ошибка.

    Это свойство появилось в Chrome 36.

  • maxHeight

    number (необязательно)

    Поддержка прекращена

    Используйте innerBounds или outerBounds.

    Максимальная высота окна.

  • maxWidth

    number (необязательно)

    Поддержка прекращена

    Используйте innerBounds или outerBounds.

    Максимальная ширина окна.

  • minHeight

    number (необязательно)

    Поддержка прекращена

    Используйте innerBounds или outerBounds.

    Минимальная высота окна.

  • minWidth

    number (необязательно)

    Поддержка прекращена

    Используйте innerBounds или outerBounds.

    Минимальная ширина окна.

  • outerBounds

    BoundsSpecification необязательный

    Используется для указания начального положения, начального размера и ограничений окна (включая элементы оформления окна, такие как строка заголовка и рамка). Если также указан параметр id и окно с соответствующим значением id уже показывалось, будут использоваться сохраненные границы.

    Обратите внимание, что отступ между внутренними и внешними границами определяется ОС. Поэтому, если вы зададите одинаковые границы для innerBounds и outerBounds, возникнет ошибка.

    Это свойство появилось в Chrome 36.

  • с изменяемым размером

    Логическое значение (необязательно)

    Если задано значение true, пользователь сможет изменять размер окна. По умолчанию используется значение true.

  • showInShelf

    Логическое значение (необязательно)

    Chrome 54 и более поздних версий;

    Если задано значение True, у окна будет собственный значок на панели запуска. В противном случае окно будет сгруппировано на панели с другими окнами, связанными с приложением. По умолчанию используется значение false. Если для showInShelf задано значение true, необходимо указать идентификатор окна.

  • одиночка

    Логическое значение (необязательно)

    Поддержка прекращена

    Несколько окон с одним идентификатором больше не поддерживаются.

    По умолчанию, если вы указываете идентификатор окна, оно будет создано, только если не существует другого окна с таким же идентификатором. Если окно с таким идентификатором уже существует, оно будет активировано. Если вы хотите создать несколько окон с одним и тем же идентификатором, задайте для этого свойства значение false.

  • штат

    State optional

    Начальное состояние окна, позволяющее создать его уже в полноэкранном режиме, развернутым или свернутым. Значение по умолчанию – 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 свойство CSS -webkit-app-region можно использовать, чтобы сделать окно приложения перетаскиваемым.

    -webkit-app-region: drag можно использовать, чтобы сделать регионы перетаскиваемыми. С помощью no-drag можно отключить этот стиль для вложенных элементов.

State

Состояние окна: обычное, полноэкранное, развернутое, свернутое.

Перечисление

"normal"

"fullscreen"

"maximized"

"minimized"

WindowType

Chrome 45 и более поздних версий;

Указывает тип создаваемого окна.

Перечисление

"shell"
Тип окна по умолчанию.

"panel"
Окно, управляемое ОС (поддержка прекращена).

Методы

canSetVisibleOnAllWorkspaces()

chrome.app.window.canSetVisibleOnAllWorkspaces(): boolean

Поддерживает ли текущая платформа отображение окон во всех рабочих областях.

Возвраты

  • Логическое значение

create()

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

Размер и положение окна можно задать разными способами. Самый простой вариант – не указывать ничего. В этом случае будут использоваться размер по умолчанию и позиция, зависящая от платформы.

Чтобы задать положение, размер и ограничения окна, используйте свойства innerBounds или outerBounds. Внутренние границы не включают элементы оформления окна. Внешние границы включают строку заголовка и рамку окна. Обратите внимание, что отступ между внутренними и внешними границами определяется ОС. Поэтому одновременное указание одного и того же свойства для внутренних и внешних границ (например, innerBounds.left и outerBounds.left) считается ошибкой.

Чтобы автоматически запоминать положение окон, вы можете присвоить им идентификаторы. Если у окна есть идентификатор, он используется для запоминания размера и положения окна при его перемещении или изменении размера. Эти размеры и положение используются вместо указанных границ при последующем открытии окна с тем же идентификатором. Если вам нужно открыть окно с идентификатором в месте, отличном от запомненного по умолчанию, вы можете создать его скрытым, переместить в нужное место, а затем показать.

Параметры

  • url

    string

  • Параметры

    CreateWindowOptions необязательный

  • обратный вызов

    function необязательно

    Параметр callback выглядит следующим образом:

    (createdWindow: AppWindow) => void

Возвраты

  • Promise<AppWindow>

    Chrome 117 и более поздних версий

    Объекты Promise поддерживаются только в Manifest V3 и более поздних версиях. На других платформах нужно использовать обратные вызовы.

current()

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

Возвращает объект AppWindow для текущего контекста скрипта (например, объект window в JavaScript). Этот метод также можно вызвать для дескриптора контекста скрипта другой страницы, например otherWindow.chrome.app.window.current().

Возвраты

get()

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

Возвращает объект AppWindow с заданным идентификатором. Если окна с указанным идентификатором не существует, возвращается значение null. Этот метод появился в Chrome 33.

Параметры

  • id

    string

Возвраты

getAll()

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

Возвращает массив всех созданных окон приложения. Этот метод появился в Chrome 33.

Возвраты

События

onBoundsChanged

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

Срабатывает при изменении размера окна.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    () => void

onClosed

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

Срабатывает при закрытии окна. Обратите внимание, что это событие должно прослушиваться из окна, отличного от закрываемого, например из фоновой страницы. Это связано с тем, что закрываемое окно будет находиться в процессе удаления при запуске события, а это означает, что не все API в контексте скрипта окна будут работать.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    () => void

onFullscreened

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

Срабатывает, когда окно переходит в полноэкранный режим (с помощью AppWindow или API HTML5).

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    () => void

onMaximized

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

Срабатывает, когда окно разворачивается.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    () => void

onMinimized

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

Срабатывает, когда окно свернуто.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    () => void

onRestored

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

Срабатывает, когда окно восстанавливается из свернутого или развернутого состояния.

Параметры

  • обратный вызов

    function

    Параметр callback выглядит следующим образом:

    () => void