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
-