Description
Utilisez l'API chrome.fileBrowserHandler
pour étendre l'explorateur de fichiers Chrome OS. Par exemple, vous pouvez utiliser cette API pour permettre aux utilisateurs d'importer des fichiers sur votre site Web.
Concepts et utilisation
L'explorateur de fichiers de ChromeOS s'affiche lorsque l'utilisateur appuie sur Alt+Maj+M ou connecte un périphérique de stockage externe, comme une carte SD, une clé USB, un disque externe ou un appareil photo numérique. En plus d'afficher les fichiers sur des appareils externes, l'explorateur de fichiers peut également afficher les fichiers que l'utilisateur a précédemment enregistrés sur le système.
Lorsque l'utilisateur sélectionne un ou plusieurs fichiers, l'explorateur de fichiers ajoute des boutons représentant les gestionnaires valides pour ces fichiers. Par exemple, dans la capture d'écran suivante, la sélection d'un fichier portant le suffixe ".png" entraîne l'affichage d'un bouton "Enregistrer dans la galerie" sur lequel l'utilisateur peut cliquer.
![Explorateur de fichiers ChromeOS.](https://developer.chrome.com/static/docs/extensions/reference/api/fileBrowserHandler/images/filebrowserhandler.png?authuser=6&hl=fr)
Autorisations
fileBrowserHandler
Vous devez déclarer l'autorisation "fileBrowserHandler"
dans le fichier manifeste de l'extension.
Garantie de disponibilité
Vous devez utiliser le champ "file_browser_handlers"
pour enregistrer l'extension en tant que gestionnaire d'au moins un type de fichier. Vous devez également fournir une icône 16 x 16 à afficher sur le bouton. Exemple :
{
"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"
},
...
}
Implémenter un gestionnaire d'explorateur de fichiers
Pour utiliser cette API, vous devez implémenter une fonction qui gère l'événement onExecute
de chrome.fileBrowserHandler
. Votre fonction est appelée chaque fois que l'utilisateur clique sur le bouton qui représente votre gestionnaire d'explorateur de fichiers. Dans votre fonction, utilisez l'API File System pour accéder au contenu des fichiers. Voici un exemple :
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
}
});
Votre gestionnaire d'événements reçoit deux arguments:
id
- Valeur
id
du fichier manifeste. Si votre extension implémente plusieurs gestionnaires, vous pouvez vérifier la valeur de l'ID pour voir quel gestionnaire a été déclenché. details
- Objet décrivant l'événement. Vous pouvez obtenir le ou les fichiers sélectionnés par l'utilisateur dans le champ
entries
de cet objet, qui est un tableau d'objetsFileSystemFileEntry
.
Types
FileHandlerExecuteEventDetails
Charge utile des détails de l'événement pour l'événement fileBrowserHandler.onExecute.
Propriétés
-
entries
tout[]
Tableau d'instances Entry représentant les fichiers cibles de cette action (sélectionnées dans le navigateur de fichiers ChromeOS).
-
tab_id
numéro facultatif
ID de l'onglet à l'origine de cet événement. Les ID d'onglet sont uniques dans une session de navigateur.
Événements
onExecute
chrome.fileBrowserHandler.onExecute.addListener(
callback: function,
)
Déclenché lorsque l'action sur le système de fichiers est exécutée depuis l'explorateur de fichiers ChromeOS.
Paramètres
-
rappel
function
Le paramètre
callback
se présente comme suit :(id: string, details: FileHandlerExecuteEventDetails) => void
-
id
chaîne
-
détails
-