Açıklama
Chrome OS dosya tarayıcısını genişletmek için chrome.fileBrowserHandler
API'yi kullanın. Örneğin, kullanıcıların web sitenize dosya yüklemesine izin vermek için bu API'yi kullanabilirsiniz.
Kavramlar ve kullanım
Kullanıcı Alt+Üst Karakter+M tuşlarına bastığında veya SD kart, USB anahtarı, harici sürücü ya da dijital kamera gibi harici bir depolama cihazı bağladığında ChromeOS dosya tarayıcısı açılır. Dosya tarayıcısı, harici cihazlardaki dosyaların yanı sıra kullanıcının daha önce sisteme kaydettiği dosyaları da gösterebilir.
Kullanıcı bir veya daha fazla dosya seçtiğinde dosya gezgini, bu dosyaların geçerli işleyicilerini temsil eden düğmeler ekler. Örneğin, aşağıdaki ekran görüntüsünde ".png" son eki içeren bir dosya seçildiğinde kullanıcının tıklayabileceği bir "Galeri'ye kaydet" düğmesi gösterilir.
İzinler
fileBrowserHandler
"fileBrowserHandler"
iznini uzantı manifestinde belirtmeniz gerekir.
Kullanılabilirlik
Uzantı, en az bir dosya türü için işleyici olarak kaydedilirken "file_browser_handlers"
alanını kullanmanız gerekir. Düğmede gösterilecek 16x16 boyutunda bir simge de sağlamanız gerekir. Örneğin:
{
"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"
},
...
}
Dosya tarayıcısı işleyicisi uygulama
Bu API'yi kullanmak için chrome.fileBrowserHandler
onExecute
etkinliğini işleyen bir işlev uygulamanız gerekir. İşleviniz, kullanıcı dosya tarayıcısı işleyicinizi temsil eden düğmeyi her tıkladığında çağrılır. İşlevinizde, dosya içeriğine erişmek için File System API'yi kullanın. Örnek:
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
}
});
Etkinlik işleyicinize iki bağımsız değişken iletilir:
id
- Manifest dosyasından
id
değeri. Uzantınız birden fazla işleyici uygularsa hangi işleyicinin tetiklendiğini görmek için kimlik değerini kontrol edebilirsiniz. details
- Etkinliği açıklayan bir nesne. Kullanıcının seçtiği dosyaları, bu nesnenin
entries
alanından (FileSystemFileEntry
nesneleri dizisi) alabilirsiniz.
Türler
FileHandlerExecuteEventDetails
fileBrowserHandler.onExecute etkinliği için etkinlik ayrıntıları yükü.
Özellikler
-
entries
any[]
Bu işlemin hedefi olan dosyaları temsil eden giriş örnekleri dizisi (ChromeOS dosya tarayıcısında seçili).
-
tab_id
number isteğe bağlı
Bu etkinliği oluşturan sekmenin kimliği. Sekme kimlikleri, tarayıcı oturumunda benzersizdir.
Etkinlikler
onExecute
chrome.fileBrowserHandler.onExecute.addListener(
callback: function,
)
ChromeOS dosya gezgininden dosya sistemi işlemi yürütüldüğünde tetiklenir.
Parametreler
-
geri çağırma
işlev
callback
parametresi şu şekilde görünür:(id: string, details: FileHandlerExecuteEventDetails) => void
-
id
dize
-
ayrıntılar
-