Açıklama
Chrome OS dosya tarayıcısını genişletmek için chrome.fileBrowserHandler
API'sini kullanın. Örneğin, kullanıcıların web sitenize dosya yükleyebilmesini sağlamak için bu API'yi kullanabilirsiniz.
İzinler
fileBrowserHandler
Kullanılabilirlik
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ını bağlarsa ChromeOS dosya tarayıcısı açılır. Dosya tarayıcısı, harici cihazlardaki dosyaları göstermenin yanı sıra, kullanıcının daha önce sisteme kaydettiği dosyaları da görüntüleyebilir.
Kullanıcı bir veya daha fazla dosya seçtiğinde dosya tarayıcısı bu dosyalar için geçerli işleyicileri temsil eden düğmeler ekler. Örneğin, aşağıdaki ekran görüntüsünde ".png" son ekine sahip bir dosya seçildiğinde kullanıcının tıklayabileceği "Galeriye Kaydet" düğmesi gösterilir.
Manifest
Uzantı manifest'inde "fileBrowserHandler" iznini beyan etmeniz ve uzantıyı en az bir dosya türünün işleyicisi olarak kaydetmek için "file_browser_handlers" alanını kullanmanız gerekir. Düğmede görüntülenmesi için 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. Kullanıcı, dosya tarayıcısı işleyicinizi temsil eden düğmeyi her tıkladığında işleviniz çağrılır. İşlevinizde, dosya içeriklerine 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ındaki "id" değeri. Uzantınız birden fazla işleyici uyguluyorsa hangi işleyicinin tetiklendiğini görmek için kimlik değerini kontrol edebilirsiniz.
- ayrıntılar
- Etkinliği açıklayan bir nesne. Kullanıcının seçtiği dosyayı veya dosyaları,
FileSystemFileEntry
nesne dizisi olan bu nesneninentries
alanından alabilirsiniz.
Türler
FileHandlerExecuteEventDetails
fileBrowserHandler.onExecute etkinliğinin etkinlik ayrıntıları yükü.
Özellikler
-
entries
herhangi biri[]
Bu işlemin hedefi olan dosyaları temsil eden Giriş örnekleri dizisi (ChromeOS dosya tarayıcısında seçilir).
-
tab_id
numara 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,
)
Dosya sistemi işlemi ChromeOS dosya tarayıcısından 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
-