Opis
Używaj interfejsu chrome.fileBrowserHandler
API, aby rozszerzać możliwości przeglądarki plików Chrome OS. Dzięki niemu możesz na przykład umożliwić użytkownikom przesyłanie plików do Twojej witryny.
Pojęcia i zastosowanie
Przeglądarka plików ChromeOS jest wyświetlana, gdy użytkownik naciśnie Alt + Shift + M lub połączy się z zewnętrznym urządzeniem pamięci masowej, takim jak karta SD, klucz USB, dysk zewnętrzny czy aparat cyfrowy. Poza wyświetlaniem plików na urządzeniach zewnętrznych przeglądarka plików może też wyświetlać pliki wcześniej zapisane przez użytkownika w systemie.
Gdy użytkownik wybierze co najmniej 1 plik, przeglądarka plików doda przyciski reprezentujące prawidłowe moduły obsługi tych plików. Na przykład na zrzucie ekranu poniżej po wybraniu pliku z sufiksem „.png” pojawi się przycisk „Zapisz w galerii”, który użytkownik może kliknąć.
Uprawnienia
fileBrowserHandler
Uprawnienie "fileBrowserHandler"
musisz zadeklarować w pliku manifestu rozszerzenia.
Dostępność
Aby zarejestrować rozszerzenie jako moduł obsługi co najmniej jednego typu pliku, musisz użyć pola "file_browser_handlers"
. Należy również udostępnić ikonę o wymiarach 16 x 16, która będzie wyświetlana na przycisku. Na przykład:
{
"name": "My extension",
...
"file_browser_handlers": [
{
"id": "upload",
"default_title": "Save to Gallery", // What the button will display
"file_filters": [
"filesystem:*.jpg", // To match all files, use "filesystem:*.*"
"filesystem:*.jpeg",
"filesystem:*.png"
]
}
],
"permissions" : [
"fileBrowserHandler"
],
"icons": {
"16": "icon16.png",
"48": "icon48.png",
"128": "icon128.png"
},
...
}
Wdrażanie modułu obsługi plików w przeglądarce
Aby użyć tego interfejsu API, musisz zaimplementować funkcję, która obsługuje zdarzenie onExecute
chrome.fileBrowserHandler
. Funkcja będzie wywoływana za każdym razem, gdy użytkownik kliknie przycisk reprezentujący moduł obsługi przeglądarki plików. Aby uzyskać dostęp do zawartości pliku w funkcji, użyj interfejsu File System API. Oto przykład:
chrome.fileBrowserHandler.onExecute.addListener(async (id, details) => {
if (id !== 'upload') {
return; // check if you have multiple file_browser_handlers
}
for (const entry of detail.entries) {
// the FileSystemFileEntry doesn't have a Promise API, wrap in one
const file = await new Promise((resolve, reject) => {
entry.file(resolve, reject);
});
const buffer = await file.arrayBuffer();
// do something with buffer
}
});
Moduł obsługi zdarzeń otrzymuje 2 argumenty:
id
- Wartość
id
z pliku manifestu. Jeśli rozszerzenie ma wiele modułów obsługi, możesz sprawdzić wartość identyfikatora, aby zobaczyć, który moduł został aktywowany. details
- Obiekt opisujący zdarzenie. Pliki wybrane przez użytkownika możesz pobrać z pola
entries
tego obiektu, które jest tablicą obiektówFileSystemFileEntry
.
Typy
FileHandlerExecuteEventDetails
Ładunek szczegółów zdarzenia dla zdarzenia fileBrowserHandler.onExecute.
Właściwości
-
wpisy
każdy[]
Tablica instancji wpisów reprezentujących pliki, które są celem tego działania (wybrana w przeglądarce plików ChromeOS).
-
tab_id
Liczba opcjonalnie
Identyfikator karty, która wywołała to zdarzenie. Identyfikatory kart są unikalne w ramach sesji przeglądarki.
Wydarzenia
onExecute
chrome.fileBrowserHandler.onExecute.addListener(
callback: function,
)
Uruchamiane po wykonaniu działania systemu plików w przeglądarce plików ChromeOS.
Parametry
-
wywołanie zwrotne
funkcja
Parametr
callback
wygląda tak:(id: string, details: FileHandlerExecuteEventDetails) => void
-
id
string,
-
szczegóły
-