Obsługa plików pozwala skonfigurować ChromeOS w taki sposób, aby rozszerzenie mogło otwierać pliki za pomocą menu Otwórz w menu Plik lub Otwórz za pomocą menu kontekstowego. Po otwarciu przetwórz dane z pliku za pomocą interfejsu Launch Handler API na platformie internetowej. Następnie należy używać standardowych interfejsów API platformy internetowej do wyświetlania lub obsługi pliku.
Dostępność w rozszerzeniach
ChromeOS 120 lub nowszy.
Uprawnienia
Do obsługi plików nie są wymagane uprawnienia.
Plik manifestu
Musisz dodać tablicę "file_handlers"
do pliku manifest.json.
Konteksty dodatkowe
Tego interfejsu API można używać w skryptach service worker, wyskakujących okienkach, panelach bocznych i skryptach treści.
Konfigurowanie modułu obsługi plików
Każdy element "file_handlers"
, czyli poszczególne moduły obsługi plików, określa typ lub typy plików obsługiwane przez określoną stronę rozszerzenia.
Określone moduły obsługi zostaną dodane do okna Pliki ChromeOS, a w szczególności do menu Otwórz i Otwórz. Pojawią się w tych menu tylko wtedy, gdy użytkownik wybierze plik z określonym rozszerzeniem. Jeśli na przykład moduł obsługi plików określa .txt
, menu ChromeOS wyświetla ten moduł tylko wtedy, gdy wybrany jest plik z tym rozszerzeniem.
Przetwarzanie pliku
Moduł obsługi plików to plik HTML zawarty w rozszerzeniu. Gdy użytkownik wybierze moduł obsługi w menu, plik HTML otworzy się w nowej karcie. Przetwarzanie pliku, niezależnie od tego, czy jest wyświetlane, czy używane w inny sposób, odbywa się w języku JavaScript przy użyciu odpowiednich interfejsów API platformy internetowej. Kod przetwarzania musi znajdować się w osobnym pliku JavaScript, być zawarty w tagu <script>
i musi również znajdować się w rozszerzeniu. Plik skryptu pobiera obiekt FileSystemFileHandle
przy użyciu interfejsu LaunchQueue
interfejsu Launch Handler API.
Przykład
Z przykładu poniżej dowiesz się, jak uzyskać obiekt FileSystemFileHandle
za pomocą interfejsu LaunchQueue
. Aby zobaczyć, jak działa obsługa plików, zainstaluj wersję demonstracyjną obsługi plików.
if ('launchQueue' in window) {
launchQueue.setConsumer(async launchParams => {
if (!launchParams.files || !launchParams.files.length) { return; }
const fileHandle = launchParams.files[0];
});
}
``````