Opis
Rozszerzenie przeglądarki plików Chrome OS za pomocą interfejsu API chrome.fileBrowserHandler
. Możesz na przykład użyć tego interfejsu API, aby umożliwić użytkownikom przesyłanie plików do Twojej witryny.
Uprawnienia
fileBrowserHandler
Dostępność
Przeglądarka plików ChromeOS pojawia się, gdy użytkownik naciśnie Alt + Shift + M lub podłącza zewnętrzne urządzenie pamięci masowej, np. kartę SD, klucz USB, dysk zewnętrzny lub aparat cyfrowy. Oprócz wyświetlania plików na urządzeniach zewnętrznych przeglądarka plików może też wyświetlać pliki, które użytkownik wcześniej zapisał w systemie.
Gdy użytkownik wybierze jeden lub więcej plików, przeglądarka dodaje przyciski reprezentujące prawidłowe moduły obsługi tych plików. Na przykład na zrzucie ekranu poniżej wybierz plik z rozszerzeniem „.png” sufiks powoduje wyświetlenie polecenia „Zapisz w galerii”. który użytkownik może kliknąć.
Plik manifestu
Musisz zadeklarować metodę „filebrowserHandler” w pliku manifestu rozszerzenia. Musisz użyć parametru „file_browser_handlers” do zarejestrowania rozszerzenia jako modułu obsługi co najmniej jednego typu pliku. Dodaj też 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 przeglądarki plików
Aby użyć tego interfejsu API, musisz zaimplementować funkcję, która obsługuje zdarzenie onExecute
zdarzenia 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. Użyj w swojej funkcji 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ł obsługi zdarzeń przekazuje 2 argumenty:
- id
- Identyfikator z pliku manifestu. Jeśli rozszerzenie zawiera wiele modułów obsługi, możesz sprawdzić wartość identyfikatora, by dowiedzieć się, który moduł obsługi został aktywowany.
- szczegóły
- 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 filebrowserHandler.onExecute.
Właściwości
-
wpisy
dowolne[]
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 obrębie sesji przeglądarki.
Wydarzenia
onExecute
chrome.fileBrowserHandler.onExecute.addListener(
callback: function,
)
Uruchamiane, gdy w przeglądarce plików ChromeOS jest wykonywane działanie systemu plików.
Parametry
-
wywołanie zwrotne
funkcja
Parametr
callback
wygląda tak:(id: string, details: FileHandlerExecuteEventDetails) => void
-
id
ciąg znaków
-
szczegóły
-