مدیریت فایل به شما امکان میدهد ChromeOS را به گونهای پیکربندی کنید که برنامه افزودنی شما بتواند فایلها را با استفاده از منوی باز کردن منوی فایل یا منوی باز کردن با منوی زمینه باز کند. پس از باز کردن، دادههای فایل را با استفاده از API راهاندازی پلتفرم وب پردازش میکنید. سپس از APIهای استاندارد پلتفرم وب برای نمایش یا مدیریت فایل استفاده خواهید کرد.
در دسترس بودن در پسوندها
ChromeOS 120 یا جدیدتر.
مجوزها
هیچ مجوزی برای مدیریت فایل مورد نیاز نیست.
آشکار
باید آرایه "file_handlers"
را به فایل manifest.json اضافه کنید.
زمینه های حمایتی
این API ممکن است در کارگران خدمات برنامه افزودنی، پنجرههای بازشو، پانلهای جانبی یا اسکریپتهای محتوا استفاده شود.
یک کنترل کننده فایل را پیکربندی کنید
هر یک از اعضای "file_handlers"
- به معنی هر کنترل کننده فایل - نوع یا انواع فایلی را مشخص می کند که باید توسط یک صفحه برنامه افزودنی خاص مدیریت شود.
کنترلکنندههایی که مشخص میکنید به پنجره ChromeOS Files، بهطور خاص منوهای Open و Open with اضافه میشوند. آنها فقط زمانی در این منوها ظاهر می شوند که کاربر فایلی با پسوند خاص را انتخاب کند. برای مثال، اگر یک کنترلکننده فایل .txt
را مشخص کند، منوهای ChromeOS فقط زمانی آن دسته را نشان میدهند که فایلی با آن پسوند انتخاب شده باشد.
پردازش یک فایل
کنترل کننده فایل یک فایل HTML است که در پسوند شما قرار دارد. هنگامی که کاربر کنترل کننده شما را از یک منو انتخاب می کند، فایل HTML در یک تب جدید باز می شود. پردازش فایل، چه آن را نمایش دهید و چه به روش دیگری از آن استفاده کنید، با جاوا اسکریپت و با استفاده از API های بستر وب مناسب انجام می شود. کد پردازش باید در یک فایل جاوا اسکریپت جداگانه باشد و از طریق تگ <script>
درج شود و همچنین باید در پسوند شما باشد. فایل اسکریپت از رابط LaunchQueue
از API Launch Handler برای دریافت یک شی FileSystemFileHandle
استفاده می کند.
مثال
مثال زیر نحوه دریافت یک شی FileSystemFileHandle
را با استفاده از رابط LaunchQueue
نشان می دهد. برای مشاهده عملکرد فایلها، نسخه ی نمایشی مدیریت فایل را نصب کنید.
if ('launchQueue' in window) {
launchQueue.setConsumer(async launchParams => {
if (!launchParams.files || !launchParams.files.length) { return; }
const fileHandle = launchParams.files[0];
});
}
``````