Descri��o
Use a API chrome.fileBrowserHandler
para ampliar o navegador de arquivos do ChromeOS. Por exemplo, voc� pode usar essa API para permitir que os usu�rios fa�am upload de arquivos para seu site.
Conceitos e uso
O navegador de arquivos do ChromeOS aparece quando o usu�rio pressiona Alt+Shift+M ou conecta um dispositivo de armazenamento externo, como um cart�o SD, uma chave USB, um drive externo ou uma c�mera digital. Al�m de mostrar os arquivos em dispositivos externos, o navegador tamb�m pode mostrar os arquivos salvos pelo usu�rio no sistema.
Quando o usu�rio seleciona um ou mais arquivos, o navegador de arquivos adiciona bot�es que representam os manipuladores v�lidos para esses arquivos. Por exemplo, na captura de tela abaixo, selecionar um arquivo com um arquivo ".png" resulta em um bot�o "Salvar na galeria" em que o usu�rio pode clicar.
Permiss�es
fileBrowserHandler
Declare a permiss�o "fileBrowserHandler"
no manifesto de extens�es.
Disponibilidade
Use o campo "file_browser_handlers"
para registrar a extens�o como um gerenciador de pelo menos um tipo de arquivo. Voc� tamb�m deve fornecer um �cone de 16 por 16 para ser exibido no bot�o. Exemplo:
{
"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"
},
...
}
Implementar um gerenciador do navegador de arquivos
Para usar essa API, implemente uma fun��o que gerencie o evento onExecute
de chrome.fileBrowserHandler
. Sua fun��o ser� chamada sempre que o usu�rio clicar no bot�o que representa o gerenciador do navegador de arquivos. Na fun��o, use a API File System para ter acesso ao conte�do do arquivo. Exemplo:
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
}
});
Seu manipulador de eventos recebe dois argumentos:
id
- O valor
id
do arquivo de manifesto. Se a extens�o implementar v�rios gerenciadores, voc� poder� verificar o valor do ID para ver qual gerenciador foi acionado. details
- Um objeto que descreve o evento. � poss�vel acessar os arquivos que o usu�rio selecionou no campo
entries
desse objeto, que � uma matriz de objetosFileSystemFileEntry
.
Tipos
FileHandlerExecuteEventDetails
Payload de detalhes do evento para o evento fileBrowserHandler.onExecute.
Propriedades
-
entries
qualquer[]
Matriz de inst�ncias de entrada que representa os arquivos que s�o destinos dessa a��o (selecionada no navegador de arquivos do ChromeOS).
-
tab_id
n�mero opcional
O ID da guia que gerou esse evento. Os IDs de guia s�o exclusivos em uma sess�o do navegador.
Eventos
onExecute
chrome.fileBrowserHandler.onExecute.addListener(
callback: function,
)
Disparado quando a a��o do sistema de arquivos � executada no navegador de arquivos do ChromeOS.
Par�metros
-
callback
fun��o
O par�metro
callback
tem esta apar�ncia:(id: string, details: FileHandlerExecuteEventDetails) => void
-
id
string
-
detalhes
-