Opis
Do tworzenia okien używaj interfejsu chrome.app.window
API. Okna mają opcjonalną ramkę z paskiem tytułu i elementami sterującymi rozmiarem. Nie są one powiązane z żadnymi oknami przeglądarki Chrome. Przykłady tych opcji znajdziesz w Window State Sample.
Typy
AppWindow
Właściwości
-
contentWindow
Okno
Obiekt JavaScript „window” utworzonego elementu podrzędnego.
-
id
ciąg znaków
Identyfikator, z którym utworzono okno.
-
innerBounds
Położenie, rozmiar i ograniczenia treści okna, które nie obejmują dekoracji okna. Ta właściwość jest nowa w Chrome 36.
-
outerBounds
Położenie, rozmiar i ograniczenia okna, w tym dekoracje okna, takie jak pasek tytułu i ramka. Ta właściwość jest nowa w Chrome 36.
-
clearAttention
pusty
Wyczyść zaznaczenie okna.
Funkcja
clearAttention
wygląda tak:() => {...}
-
zamknij
pusty
Zamknij okno.
Funkcja
close
wygląda tak:() => {...}
-
drawAttention
pusty
Zwróć uwagę na okno.
Funkcja
drawAttention
wygląda tak:() => {...}
-
ostrość
pusty
Zaznacz okno.
Funkcja
focus
wygląda tak:() => {...}
-
pełny ekran
pusty
Wyświetla okno na pełnym ekranie.
Użytkownik będzie mógł przywrócić okno, naciskając klawisz ESC. Aplikacja może zapobiec wyjściu z trybu pełnoekranowego po naciśnięciu klawisza ESC, prosząc o uprawnienie
app.window.fullscreen.overrideEsc
i anulując zdarzenie przez wywołanie metody .preventDefault() w procedurach obsługi zdarzeń keydown i keyup, w ten sposób:window.onkeydown = window.onkeyup = function(e) { if (e.keyCode == 27 /* ESC *\/) { e.preventDefault(); } };
Uwaga:
window.fullscreen()
spowoduje przejście całego okna w tryb pełnoekranowy i nie wymaga gestu użytkownika. Do włączania trybu pełnoekranowego można też używać interfejsu HTML5 Fullscreen API (więcej informacji znajdziesz w sekcji Interfejsy API).Funkcja
fullscreen
wygląda tak:() => {...}
-
getBounds
pusty
WycofanoUżyj innerBounds lub outerBounds.
Pobierz wewnętrzne granice okna jako obiekt
ContentBounds
.Funkcja
getBounds
wygląda tak:() => {...}
-
returns
-
-
ukryj
pusty
Ukryj okno. Jeśli okno jest już ukryte, ta funkcja nie ma żadnego wpływu.
Funkcja
hide
wygląda tak:() => {...}
-
isAlwaysOnTop
pusty
Czy okno jest zawsze na wierzchu?
Funkcja
isAlwaysOnTop
wygląda tak:() => {...}
-
returns
Wartość logiczna
-
-
isFullscreen
pusty
Czy okno jest wyświetlane na pełnym ekranie? Wartość ta będzie prawdziwa, jeśli okno zostało utworzone na pełnym ekranie lub zostało wyświetlone na pełnym ekranie za pomocą interfejsów API
AppWindow
lub HTML5.Funkcja
isFullscreen
wygląda tak:() => {...}
-
returns
Wartość logiczna
-
-
isMaximized
pusty
Czy okno jest zmaksymalizowane?
Funkcja
isMaximized
wygląda tak:() => {...}
-
returns
Wartość logiczna
-
-
isMinimized
pusty
Czy okno jest zminimalizowane?
Funkcja
isMinimized
wygląda tak:() => {...}
-
returns
Wartość logiczna
-
-
maksymalizować,
pusty
Zmaksymalizuj okno.
Funkcja
maximize
wygląda tak:() => {...}
-
minimalizować,
pusty
Zminimalizuj okno.
Funkcja
minimize
wygląda tak:() => {...}
-
moveTo
pusty
Wycofane w Chrome 43Użyj outerBounds.
Przenieś okno na pozycję (
left
,top
).Funkcja
moveTo
wygląda tak:(left: number, top: number) => {...}
-
w lewo
liczba
-
góra
liczba
-
-
resizeTo
pusty
Wycofane w Chrome 43Użyj outerBounds.
Zmień rozmiar okna na
width
xheight
pikseli.Funkcja
resizeTo
wygląda tak:(width: number, height: number) => {...}
-
szerokość
liczba
-
wysokość
liczba
-
-
przywróć
pusty
Przywróć okno, wychodząc ze stanu zmaksymalizowanego, zminimalizowanego lub pełnoekranowego.
Funkcja
restore
wygląda tak:() => {...}
-
setAlwaysOnTop
pusty
Określ, czy okno ma być wyświetlane nad większością innych okien. Wymaga uprawnienia
alwaysOnTopWindows
.Funkcja
setAlwaysOnTop
wygląda tak:(alwaysOnTop: boolean) => {...}
-
alwaysOnTop
Wartość logiczna
-
-
setBounds
pusty
WycofanoUżyj innerBounds lub outerBounds.
Ustaw wewnętrzne granice okna.
Funkcja
setBounds
wygląda tak:(bounds: ContentBounds) => {...}
-
granice,
-
-
setVisibleOnAllWorkspaces
pusty
Określ, czy okno ma być widoczne we wszystkich obszarach roboczych. (Dotyczy tylko platform, które obsługują tę funkcję).
Funkcja
setVisibleOnAllWorkspaces
wygląda tak:(alwaysVisible: boolean) => {...}
-
alwaysVisible
Wartość logiczna
-
-
pokaż
pusty
Pokaż okno. Jeśli okno jest już widoczne, ta funkcja nie ma żadnego wpływu. Skupia okno, jeśli wartość
focused
to „true” lub jeśli nie jest skonfigurowana.Funkcja
show
wygląda tak:(focused?: boolean) => {...}
-
skupiony,
wartość logiczna opcjonalna
-
Bounds
Właściwości
-
wysokość
liczba
Ta właściwość może służyć do odczytywania lub zapisywania bieżącej wysokości treści lub okna.
-
w lewo
liczba
Tej właściwości można używać do odczytywania lub zapisywania bieżącej współrzędnej X treści lub okna.
-
maxHeight
number opcjonalny
Tej właściwości można używać do odczytywania lub zapisywania bieżącej maksymalnej wysokości treści lub okna. Wartość
null
oznacza „nieokreślony”. -
maxWidth
number opcjonalny
Tej właściwości można używać do odczytywania lub zapisywania bieżącej maksymalnej szerokości treści lub okna. Wartość
null
oznacza „nieokreślony”. -
minHeight
number opcjonalny
Tej właściwości można używać do odczytywania lub zapisywania bieżącej minimalnej wysokości treści lub okna. Wartość
null
oznacza „nieokreślony”. -
minWidth
number opcjonalny
Tej właściwości można używać do odczytywania lub zapisywania bieżącej minimalnej szerokości treści lub okna. Wartość
null
oznacza „nieokreślony”. -
góra
liczba
Tej właściwości można używać do odczytywania lub zapisywania bieżącej współrzędnej Y treści lub okna.
-
szerokość
liczba
Tej właściwości można używać do odczytywania lub zapisywania bieżącej szerokości treści lub okna.
-
setMaximumSize
pusty
Ustaw maksymalne ograniczenia rozmiaru treści lub okna. Aby usunąć ograniczenie, możesz ustawić maksymalną szerokość lub wysokość na
null
. Wartośćundefined
pozostawi ograniczenie bez zmian.Funkcja
setMaximumSize
wygląda tak:(maxWidth: number, maxHeight: number) => {...}
-
maxWidth
liczba
-
maxHeight
liczba
-
-
setMinimumSize
pusty
Ustaw minimalne ograniczenia rozmiaru treści lub okna. Minimalną szerokość lub wysokość można ustawić na
null
, aby usunąć ograniczenie. Wartośćundefined
pozostawi ograniczenie bez zmian.Funkcja
setMinimumSize
wygląda tak:(minWidth: number, minHeight: number) => {...}
-
minWidth
liczba
-
minHeight
liczba
-
-
setPosition
pusty
Ustaw pozycję treści lub okna od lewej i od góry.
Funkcja
setPosition
wygląda tak:(left: number, top: number) => {...}
-
w lewo
liczba
-
góra
liczba
-
-
setSize
pusty
Ustaw szerokość i wysokość treści lub okna.
Funkcja
setSize
wygląda tak:(width: number, height: number) => {...}
-
szerokość
liczba
-
wysokość
liczba
-
BoundsSpecification
Właściwości
-
wysokość
number opcjonalny
Wysokość treści lub okna.
-
w lewo
number opcjonalny
Współrzędna X treści lub okna.
-
maxHeight
number opcjonalny
Maksymalna wysokość treści lub okna.
-
maxWidth
number opcjonalny
Maksymalna szerokość treści lub okna.
-
minHeight
number opcjonalny
Minimalna wysokość treści lub okna.
-
minWidth
number opcjonalny
Minimalna szerokość treści lub okna.
-
góra
number opcjonalny
Współrzędna Y treści lub okna.
-
szerokość
number opcjonalny
Szerokość treści lub okna.
ContentBounds
Właściwości
-
wysokość
number opcjonalny
-
w lewo
number opcjonalny
-
góra
number opcjonalny
-
szerokość
number opcjonalny
CreateWindowOptions
Właściwości
-
alwaysOnTop
wartość logiczna opcjonalna
Jeśli ma wartość true, okno będzie zawsze nad większością innych okien. Jeśli jest kilka takich okien, na pierwszym planie będzie to, które jest obecnie zaznaczone. Wymaga uprawnienia
alwaysOnTopWindows
. Wartość domyślna to fałsz.Aby zmienić tę właściwość po utworzeniu, kliknij
setAlwaysOnTop()
w oknie. -
granice,
ContentBounds opcjonalny
WycofanoUżyj innerBounds lub outerBounds.
Rozmiar i położenie treści w oknie (z wyłączeniem paska tytułu). Jeśli określono też identyfikator, a okno z pasującym identyfikatorem było już wcześniej wyświetlane, zostaną użyte zapamiętane granice okna.
-
skupiony,
wartość logiczna opcjonalna
Jeśli ma wartość Prawda, okno zostanie zaznaczone po utworzeniu. Domyślna wartość to true.
-
ramka
string | FrameOptions opcjonalny
Typ ramki:
none
lubchrome
(domyślniechrome
). W przypadku wartościnone
można użyć właściwości CSS-webkit-app-region
, aby umożliwić przeciąganie okna aplikacji.-webkit-app-region: drag
można użyć do oznaczenia regionów, które można przeciągać.no-drag
można użyć do wyłączenia tego stylu w elementach zagnieżdżonych.Użycie
FrameOptions
jest nowością w M36. -
wartość logiczna opcjonalna
Jeśli ma wartość true, okno zostanie utworzone w stanie ukrytym. Po utworzeniu okna wywołaj w nim funkcję show(), aby je wyświetlić. Wartość domyślna to fałsz.
-
ikona
string opcjonalny
Chrome 54 lub nowszaAdres URL ikony okna. Gdy parametr showInShelf ma wartość true, okno może mieć własną ikonę. Adres URL powinien być globalny lub lokalny dla rozszerzenia.
-
id
string opcjonalny
Identyfikator okna. Będzie on używany do zapamiętywania rozmiaru i położenia okna oraz przywracania tych wartości, gdy później zostanie otwarte okno o tym samym identyfikatorze. Jeśli okno o danym identyfikatorze zostanie utworzone, gdy istnieje już inne okno o tym samym identyfikatorze, zamiast tworzyć nowe okno, zostanie aktywowane aktualnie otwarte okno.
-
innerBounds
BoundsSpecification opcjonalny
Służy do określania początkowej pozycji, początkowego rozmiaru i ograniczeń treści okna (z wyłączeniem dekoracji okna). Jeśli określono też
id
i wcześniej wyświetlono okno z pasującymid
, zostaną użyte zapamiętane granice.Pamiętaj, że odstęp między wewnętrzną a zewnętrzną granicą jest określany przez system operacyjny. Dlatego ustawienie tej samej właściwości bounds zarówno dla elementu
innerBounds
, jak iouterBounds
spowoduje błąd.Ta właściwość jest nowa w Chrome 36.
-
maxHeight
number opcjonalny
WycofanoUżyj innerBounds lub outerBounds.
Maksymalna wysokość okna.
-
maxWidth
number opcjonalny
WycofanoUżyj innerBounds lub outerBounds.
Maksymalna szerokość okna.
-
minHeight
number opcjonalny
WycofanoUżyj innerBounds lub outerBounds.
Minimalna wysokość okna.
-
minWidth
number opcjonalny
WycofanoUżyj innerBounds lub outerBounds.
Minimalna szerokość okna.
-
outerBounds
BoundsSpecification opcjonalny
Służy do określania początkowego położenia, początkowego rozmiaru i ograniczeń okna (w tym dekoracji okna, takich jak pasek tytułu i ramka). Jeśli określono też
id
i wcześniej wyświetlono okno z pasującymid
, zostaną użyte zapamiętane granice.Pamiętaj, że odstęp między wewnętrzną a zewnętrzną granicą jest określany przez system operacyjny. Dlatego ustawienie tej samej właściwości bounds zarówno dla elementu
innerBounds
, jak iouterBounds
spowoduje błąd.Ta właściwość jest nowa w Chrome 36.
-
możliwość zmiany rozmiaru,
wartość logiczna opcjonalna
Jeśli wartość to prawda, użytkownik będzie mógł zmienić rozmiar okna. Domyślna wartość to true.
-
showInShelf
wartość logiczna opcjonalna
Chrome 54 lub nowszaJeśli ma wartość true, okno będzie miało własną ikonę na półce. W przeciwnym razie okno zostanie zgrupowane na półce z innymi oknami powiązanymi z aplikacją. Wartość domyślna to false. Jeśli showInShelf ma wartość true, musisz podać identyfikator okna.
-
singleton
wartość logiczna opcjonalna
WycofanoWiele okien o tym samym identyfikatorze nie jest już obsługiwanych.
Domyślnie, jeśli określisz identyfikator okna, zostanie ono utworzone tylko wtedy, gdy nie istnieje jeszcze inne okno o tym samym identyfikatorze. Jeśli okno o tym samym identyfikatorze już istnieje, zostanie ono aktywowane. Jeśli chcesz utworzyć wiele okien o tym samym identyfikatorze, możesz ustawić tę właściwość na wartość false.
-
stan
State opcjonalny
Stan początkowy okna, który umożliwia utworzenie go już w trybie pełnoekranowym, zmaksymalizowanym lub zminimalizowanym. Domyślna wartość to „normal”.
-
typ
WindowType opcjonalny
Chrome 45 i nowsze Wycofane w Chrome 69Wszystkie okna aplikacji korzystają z typu okna „powłoka”.
Typ okna do utworzenia.
-
visibleOnAllWorkspaces
wartość logiczna opcjonalna
Jeśli ma wartość true i jest obsługiwane przez platformę, okno będzie widoczne we wszystkich obszarach roboczych.
FrameOptions
Właściwości
-
activeColor
string opcjonalny
Umożliwia ustawienie koloru ramki aktywnego okna. Kolorowanie ramki jest dostępne tylko wtedy, gdy typ ramki to
chrome
.Kolorowanie ramki jest dostępne tylko wtedy, gdy typ ramki to
chrome
.Kolorowanie ramki to nowość w Chrome 36.
-
kolor
string opcjonalny
Umożliwia ustawienie koloru ramki. Kolorowanie ramki jest dostępne tylko wtedy, gdy typ ramki to
chrome
.Kolorowanie ramki to nowość w Chrome 36.
-
inactiveColor
string opcjonalny
Umożliwia ustawienie koloru ramki nieaktywnego okna innego niż kolor aktywnego okna. Kolorowanie ramki jest dostępne tylko wtedy, gdy typ ramki to
chrome
.Właściwość
inactiveColor
musi być używana w połączeniu z właściwościącolor
.Kolorowanie ramki to nowość w Chrome 36.
-
typ
string opcjonalny
Typ ramki:
none
lubchrome
(domyślniechrome
).W przypadku
none
właściwość CSS-webkit-app-region
może być używana do umożliwienia przeciągania okna aplikacji.-webkit-app-region: drag
można użyć do oznaczenia regionów, które można przeciągać.no-drag
można użyć do wyłączenia tego stylu w elementach zagnieżdżonych.
State
Stan okna: normalny, pełnoekranowy, zmaksymalizowany, zminimalizowany.
Typ wyliczeniowy
„normal”
„fullscreen”
„maximized”
„zminimalizowany”
WindowType
Określa typ okna do utworzenia.
Typ wyliczeniowy
„shell”
Domyślny typ okna.
„panel”
Okno zarządzane przez system operacyjny (wycofane)
Metody
canSetVisibleOnAllWorkspaces()
chrome.app.window.canSetVisibleOnAllWorkspaces(): boolean
Określa, czy bieżąca platforma obsługuje okna widoczne we wszystkich obszarach roboczych.
Zwroty
-
Wartość logiczna
create()
chrome.app.window.create(
url: string,
options?: CreateWindowOptions,
callback?: function,
): Promise<AppWindow>
Rozmiar i położenie okna można określić na wiele różnych sposobów. Najprostsza opcja to nieokreślanie niczego. W takim przypadku zostanie użyty domyślny rozmiar i pozycja zależna od platformy.
Aby ustawić pozycję, rozmiar i ograniczenia okna, użyj właściwości innerBounds
lub outerBounds
. Wewnętrzne granice nie obejmują dekoracji okna. Zewnętrzne granice obejmują pasek tytułu i ramkę okna. Pamiętaj, że odstęp między wewnętrzną a zewnętrzną granicą jest określany przez system operacyjny. Dlatego ustawienie tej samej właściwości dla granic wewnętrznych i zewnętrznych jest traktowane jako błąd (np. ustawienie zarówno innerBounds.left
, jak i outerBounds.left
).
Aby automatycznie zapamiętywać położenie okien, możesz przypisać im identyfikatory. Jeśli okno ma identyfikator, jest on używany do zapamiętywania rozmiaru i położenia okna za każdym razem, gdy jest ono przenoszone lub zmieniane. Ten rozmiar i pozycja są następnie używane zamiast określonych granic przy kolejnym otwarciu okna o tym samym identyfikatorze. Jeśli chcesz otworzyć okno z identyfikatorem w innym miejscu niż zapamiętane domyślne, możesz utworzyć je jako ukryte, przenieść w wybrane miejsce, a następnie wyświetlić.
Parametry
-
URL
ciąg znaków
-
Opcje
CreateWindowOptions opcjonalny
-
callback
funkcja opcjonalna
Parametr
callback
wygląda tak:(createdWindow: AppWindow) => void
-
createdWindow
-
Zwroty
-
Promise<AppWindow>
Chrome 117 lub nowszaObietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych. Inne platformy muszą używać wywołań zwrotnych.
current()
chrome.app.window.current(): AppWindow | undefined
Zwraca obiekt AppWindow
dla bieżącego kontekstu skryptu (czyli obiektu „window” w JavaScript). Można ją też wywołać w przypadku uchwytu do kontekstu skryptu innej strony, np. otherWindow.chrome.app.window.current().
Zwroty
-
AppWindow | undefined
get()
chrome.app.window.get(
id: string,
): AppWindow | undefined
Pobiera obiekt AppWindow
o podanym identyfikatorze. Jeśli nie ma okna o podanym identyfikatorze, zwracana jest wartość null. Ta metoda jest nowością w Chrome 33.
Parametry
-
id
ciąg znaków
Zwroty
-
AppWindow | undefined
getAll()
chrome.app.window.getAll(): AppWindow[]
Pobiera tablicę wszystkich utworzonych obecnie okien aplikacji. Ta metoda jest nowością w Chrome 33.
Zwroty
Wydarzenia
onBoundsChanged
chrome.app.window.onBoundsChanged.addListener(
callback: function,
)
Uruchamiane po zmianie rozmiaru okna.
Parametry
-
callback
funkcja
Parametr
callback
wygląda tak:() => void
onClosed
chrome.app.window.onClosed.addListener(
callback: function,
)
Uruchamiane po zamknięciu okna. Pamiętaj, że zdarzenie powinno być nasłuchiwane w innym oknie niż zamykane, np. na stronie w tle. Dzieje się tak, ponieważ w momencie wywołania zdarzenia zamykane okno jest w trakcie zamykania, co oznacza, że nie wszystkie interfejsy API w kontekście skryptu okna będą działać.
Parametry
-
callback
funkcja
Parametr
callback
wygląda tak:() => void
onFullscreened
chrome.app.window.onFullscreened.addListener(
callback: function,
)
Uruchamiane, gdy okno jest wyświetlane na pełnym ekranie (za pomocą interfejsów API AppWindow
lub HTML5).
Parametry
-
callback
funkcja
Parametr
callback
wygląda tak:() => void
onMaximized
chrome.app.window.onMaximized.addListener(
callback: function,
)
Uruchamiane po zmaksymalizowaniu okna.
Parametry
-
callback
funkcja
Parametr
callback
wygląda tak:() => void
onMinimized
chrome.app.window.onMinimized.addListener(
callback: function,
)
Uruchamiane po zminimalizowaniu okna.
Parametry
-
callback
funkcja
Parametr
callback
wygląda tak:() => void
onRestored
chrome.app.window.onRestored.addListener(
callback: function,
)
Wydarzenie wywoływane, gdy okno zostanie przywrócone po zminimalizowaniu lub zmaksymalizowaniu.
Parametry
-
callback
funkcja
Parametr
callback
wygląda tak:() => void