Opis
Użyj interfejsu chrome.fileBrowserHandler API, aby rozszerzyć przeglądarkę plików w ChromeOS. 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 ChromeOS pojawia się, gdy użytkownik naciśnie Alt+Shift+M lub podłączy zewnętrzne urządzenie pamięci masowej, takie jak karta SD, klucz USB, dysk zewnętrzny lub aparat cyfrowy. Przeglądarka plików może wyświetlać nie tylko pliki na urządzeniach zewnętrznych, ale też pliki, które użytkownik wcześniej zapisał 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 wybranie pliku z sufiksem „.png” powoduje wyświetlenie przycisku „Zapisz w Galerii”, który użytkownik może kliknąć.
Uprawnienia
fileBrowserHandlerMusisz zadeklarować uprawnienie "fileBrowserHandler" w pliku manifestu rozszerzenia.
Dostępność
Aby zarejestrować rozszerzenie jako obsługujące co najmniej 1 typ pliku, musisz użyć pola "file_browser_handlers". Musisz też podać ikonę o wymiarach 16 x 16 pikseli, 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 narzędzia do obsługi przeglądania plików
Aby korzystać z tego interfejsu API, musisz zaimplementować funkcję, która obsługuje zdarzenie onExecute elementu browser.fileBrowserHandler. Funkcja zostanie wywołana za każdym razem, gdy użytkownik kliknie przycisk reprezentujący moduł obsługi przeglądarki plików. W funkcji użyj interfejsu File System API, aby uzyskać dostęp do zawartości pliku. Oto przykład:
browser.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
}
});
Do modułu obsługi zdarzeń przekazywane są 2 argumenty:
id- Wartość
idz pliku manifestu. Jeśli rozszerzenie implementuje wiele funkcji obsługi, możesz sprawdzić wartość identyfikatora, aby zobaczyć, która z nich została wywołana. details- Obiekt opisujący zdarzenie. Pliki wybrane przez użytkownika możesz pobrać z pola
entriestego obiektu, które jest tablicą obiektówFileSystemFileEntry.
Typy
FileHandlerExecuteEventDetails
Ładunek szczegółów zdarzenia dla zdarzenia fileBrowserHandler.onExecute.
Właściwości
-
wpisy,
dowolny[]
Tablica instancji Entry reprezentujących pliki, które są celem 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,
)
Wywoływane, gdy działanie w systemie plików jest wykonywane z przeglądarki plików w ChromeOS.
Parametry
-
callback
funkcja
Parametr
callbackwygląda tak:(id: string, details: FileHandlerExecuteEventDetails) => void
-
id
tekst
-
szczegóły
-