chrome.fileBrowserHandler

توضیحات

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

مجوزها

fileBrowserHandler

در دسترس بودن

فقط پیش‌زمینه ChromeOS

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

هنگامی که کاربر یک یا چند فایل را انتخاب می کند، مرورگر فایل دکمه هایی را اضافه می کند که نشان دهنده کنترل کننده های معتبر آن فایل ها است. به عنوان مثال، در تصویر زیر، انتخاب یک فایل با پسوند ".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 را مدیریت کند. هر زمان که کاربر روی دکمه ای که نشان دهنده کنترل کننده مرورگر فایل شما است کلیک کند، تابع شما فراخوانی می شود. در عملکرد خود، از File System 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" از فایل مانیفست. اگر برنامه افزودنی شما چندین کنترل کننده را پیاده سازی می کند، می توانید مقدار شناسه را بررسی کنید تا ببینید کدام handler فعال شده است.
جزئیات
شیئی که رویداد را توصیف می کند. می‌توانید فایل یا فایل‌هایی را که کاربر انتخاب کرده است، از فیلد entries این شی، که آرایه‌ای از اشیاء FileSystemFileEntry است، دریافت کنید.

انواع

FileHandlerExecuteEventDetails

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

خواص

  • ورودی ها

    هر[]

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

  • tab_id

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

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

رویدادها

onExecute

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

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

پارامترها