Dosya işleme, ChromeOS'i, uzantınızın Dosya menüsündeki Aç menüsünü veya içerik menüsündeki Birlikte aç menüsünü kullanarak dosyaları açabileceği şekilde yapılandırmanıza olanak tanır. Açıldığında, dosya verilerini web platformunun Launch Handler API'sini kullanarak işlersiniz. Ardından, dosyayı görüntülemek veya işlemek için standart web platformu API'lerini kullanırsınız.
Uzantılarda kullanılabilirlik
ChromeOS 120 veya sonraki sürümler.
İzinler
Dosya işleme için herhangi bir izin gerekmez.
Manifest
"file_handlers"
dizisini manifest.json dosyasına eklemeniz gerekiyor.
Destekleyici bağlamlar
Bu API; uzantı hizmet çalışanlarında, pop-up'larda, yan panellerde veya içerik komut dosyalarında kullanılabilir.
Dosya işleyici yapılandırma
"file_handlers"
öğesinin her üyesi (yani dosya işleyici), belirli bir uzantı sayfası tarafından işlenecek dosya türünü veya türlerini belirtir.
Belirttiğiniz işleyiciler ChromeOS Dosyalar penceresine, özellikle de "Birlikte aç" ve "Birlikte aç" menülerine eklenir. Kullanıcı belirli uzantıya sahip bir dosyayı seçtiğinde bu menülerde görünürler. Örneğin, bir dosya işleyici .txt
değerini belirtiyorsa ChromeOS menülerinde bu işleyici yalnızca söz konusu uzantıya sahip bir dosya seçildiğinde gösterilir.
Dosya işleme
Dosya işleyici, uzantınızda yer alan bir HTML dosyasıdır. Kullanıcı işleyicinizi menüden seçtiğinde HTML dosyası yeni bir sekmede açılır. İster görüntüleyin ister başka bir şekilde kullanın, dosyanın işlenmesi uygun web platformu API'leri kullanılarak JavaScript ile gerçekleştirilir. İşleme kodu ayrı bir JavaScript dosyasında olmalı, <script>
etiketi aracılığıyla dahil edilmeli ve ayrıca uzantınızda yer almalıdır. Komut dosyası, FileSystemFileHandle
nesnesini almak için Launch Handler API'nin LaunchQueue
arayüzünü kullanır.
Örnek
Aşağıdaki örnekte, LaunchQueue
arayüzü kullanılarak FileSystemFileHandle
nesnesinin nasıl alınacağı gösterilmektedir. Dosyaların nasıl işlendiğini görmek için Dosya İşleme Demosunu yükleyin.
if ('launchQueue' in window) {
launchQueue.setConsumer(async launchParams => {
if (!launchParams.files || !launchParams.files.length) { return; }
const fileHandle = launchParams.files[0];
});
}
``````