chrome.fileBrowserHandler

تاریخ به‌روزرسانی: 2026-09-25 ربات‌ها: noindex

توضیحات

از API مربوط به chrome.fileBrowserHandler برای گسترش مرورگر فایل سیستم عامل کروم استفاده کنید. برای مثال، می‌توانید از این API برای فعال کردن امکان آپلود فایل توسط کاربران در وب‌سایت خود استفاده کنید.

مجوزها

fileBrowserHandler

در دسترس بودن

فقط سیستم عامل کروم فقط در پیش‌زمینه

مرورگر فایل ChromeOS زمانی ظاهر می‌شود که کاربر کلیدهای Alt+Shift+M را فشار دهد یا یک دستگاه ذخیره‌سازی خارجی مانند کارت SD، فلش USB، درایو خارجی یا دوربین دیجیتال را متصل کند. این مرورگر فایل علاوه بر نمایش فایل‌های موجود در دستگاه‌های خارجی، می‌تواند فایل‌هایی را که کاربر قبلاً در سیستم ذخیره کرده است نیز نمایش دهد.

وقتی کاربر یک یا چند فایل را انتخاب می‌کند، مرورگر فایل دکمه‌هایی را اضافه می‌کند که نشان‌دهنده‌ی هندلرهای معتبر برای آن فایل‌ها هستند. برای مثال، در تصویر زیر، انتخاب فایلی با پسوند ".png" منجر به دکمه‌ی "ذخیره در گالری" می‌شود که کاربر می‌تواند روی آن کلیک کند.

تصویر مرورگر فایل

مانیفست

شما باید مجوز "fileBrowserHandler" را در مانیفست افزونه اعلام کنید و باید از فیلد "file_browser_handlers" برای ثبت افزونه به عنوان یک هندلر حداقل یک نوع فایل استفاده کنید. همچنین باید یک آیکون 16x16 برای نمایش روی دکمه ارائه دهید. به عنوان مثال:

{
  "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"
  },
  ...
}

پیاده‌سازی یک کنترل‌کننده مرورگر فایل

برای استفاده از این API، باید تابعی پیاده‌سازی کنید که رویداد onExecute از chrome.fileBrowserHandler را مدیریت کند. تابع شما هر زمان که کاربر روی دکمه‌ای که نشان‌دهنده‌ی مدیریت‌کننده‌ی مرورگر فایل شماست کلیک کند، فراخوانی می‌شود. در تابع خود، از API سیستم فایل برای دسترسی به محتوای فایل استفاده کنید. در اینجا مثالی آورده شده است:

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
  }
});

به کنترل‌کننده‌ی رویداد شما دو آرگومان ارسال می‌شود:

شناسه
مقدار "id" از فایل مانیفست. اگر افزونه شما چندین هندلر را پیاده‌سازی می‌کند، می‌توانید مقدار id را بررسی کنید تا ببینید کدام هندلر فعال شده است.
جزئیات
یک شیء که رویداد را توصیف می‌کند. می‌توانید فایل یا فایل‌هایی را که کاربر انتخاب کرده است از فیلد entries این شیء که آرایه‌ای از اشیاء FileSystemFileEntry است، دریافت کنید.

انواع

FileHandlerExecuteEventDetails

جزئیات رویداد مربوط به رویداد fileBrowserHandler.onExecute.

خواص

  • نوشته‌ها

    هر []

    آرایه‌ای از نمونه‌های ورودی که فایل‌هایی را نشان می‌دهد که هدف این اقدام هستند (در مرورگر فایل ChromeOS انتخاب شده‌اند).

  • شناسه برگه

    شماره اختیاری

    شناسه‌ی برگه‌ای که این رویداد را ایجاد کرده است. شناسه‌های برگه در یک جلسه‌ی مرورگر منحصر به فرد هستند.

رویدادها

onExecute

chrome.fileBrowserHandler.onExecute.addListener(
  callback: function,
)

زمانی اجرا می‌شود که یک اقدام سیستم فایل از مرورگر فایل ChromeOS اجرا شود.

پارامترها