Opis
Użyj interfejsu chrome.fileBrowserHandler
API, aby rozszerzyć przeglądarkę plików w Chrome OS. Możesz na przykład użyć tego interfejsu API, aby umożliwić użytkownikom przesyłanie plików na Twoją stronę.
Pojęcia i zastosowanie
Przeglądarka plików w ChromeOS pojawia się, gdy użytkownik naciśnie Alt+Shift+M lub podłączy urządzenie pamięci zewnętrznej, takie jak karta SD, pendrive, dysk zewnętrzny lub aparat cyfrowy. Oprócz plików na urządzeniach zewnętrznych przeglądarka plików może wyświetlać również pliki zapisane wcześniej przez użytkownika w systemie.
Gdy użytkownik wybierze co najmniej 1 plik, przeglądarka plików dodaje przyciski reprezentujące prawidłowe moduły obsługi tych plików. Na przykład na poniższym zrzucie ekranu wybranie pliku z przyrostkiem „.png” powoduje wyświetlenie użytkownikowi przycisku „Zapisz w galerii”.

Uprawnienia
fileBrowserHandler
W pliku manifestu rozszerzenia musisz zadeklarować uprawnienie "fileBrowserHandler"
.
Dostępność
Aby zarejestrować rozszerzenie jako moduł obsługi co najmniej 1 typu pliku, musisz użyć pola "file_browser_handlers"
. Musisz też przesłać 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" }, ... }
Implementacja narzędzia do obsługi przeglądarki plików
Aby korzystać z tego interfejsu API, musisz zaimplementować funkcję, która obsługuje zdarzenie onExecute
obiektu chrome.fileBrowserHandler
. Funkcja zostanie wywołana, gdy użytkownik kliknie przycisk, który reprezentuje moduł obsługi przeglądarki plików. W swojej funkcji użyj interfejsu File System API, aby uzyskać dostęp do zawartości pliku. 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łowi obsługi zdarzenia przekazywane są 2 argumenty:
id
- Wartość
id
z pliku manifestu. Jeśli Twoje rozszerzenie implementuje kilka modułów obsługi, możesz sprawdzić wartość identyfikatora, aby zobaczyć, który z nich został uruchomiony. details
- Obiekt opisujący zdarzenie. Wybrane przez użytkownika pliki 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
any[]
Tablica wystąpień Entry, która reprezentuje pliki będące celami tego działania (wybrane w przeglądarce plików ChromeOS).
- tab_id
number opcjonalny
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, gdy działanie dotyczące systemu plików jest wykonywane w przeglądarce plików ChromeOS.
Parametry
- wywołanie zwrotne
funkcja
Parametr
callback
ma postać:(id: string, details: FileHandlerExecuteEventDetails) => void
- id
ciąg znaków
- szczegóły
-