chrome.fileBrowserHandler

الوصف

استخدِم واجهة برمجة التطبيقات chrome.fileBrowserHandler لتوسيع نطاق متصفّح ملفات ChromeOS. على سبيل المثال، يمكنك استخدام واجهة برمجة التطبيقات هذه للسماح للمستخدمين بتحميل الملفات إلى موقعك الإلكتروني.

المفاهيم وطريقة الاستخدام

يظهر متصفّح ملفات ChromeOS عندما يضغط المستخدم على Alt+Shift+M أو يربط جهاز تخزين خارجيًا، مثل بطاقة SD أو مفتاح USB أو محرك أقراص خارجي أو كاميرا رقمية. بالإضافة إلى عرض الملفات على الأجهزة الخارجية، يمكن لمتصفّح الملفات أيضًا عرض الملفات التي حفظها المستخدم سابقًا على النظام.

عندما يختار المستخدم ملفًا واحدًا أو أكثر، يضيف مستعرض الملفات أزرارًا تمثّل المعالِجات الصالحة لهذه الملفات. على سبيل المثال، في لقطة الشاشة التالية، يؤدي اختيار ملف بلاحقة "‎.png" إلى ظهور زر "الحفظ في معرض الصور" يمكن للمستخدم النقر عليه.

متصفّح ملفات ChromeOS
متصفّح ملفات ChromeOS:

الأذونات

fileBrowserHandler

يجب الإفصاح عن إذن "fileBrowserHandler" في بيان إضافة Chrome.

مدى التوفّر

نظام التشغيل ChromeOS فقط المقدّمة فقط

يجب استخدام الحقل "file_browser_handlers" لتسجيل الإضافة كمعالج لنوع ملف واحد على الأقل. يجب أيضًا تقديم رمز أبعاده 16 x ‏16 ليتم عرضه على الزر. على سبيل المثال:

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

تنفيذ معالج متصفِّح الملفات

لاستخدام واجهة برمجة التطبيقات هذه، عليك تنفيذ دالة تعالج حدث 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
قيمة id من ملف البيان إذا كانت الإضافة تنفِّذ عناصر معالجة متعددة، يمكنك التحقّق من قيمة المعرّف لمعرفة العنصر الذي تم تشغيله.
details
عنصر يصف الحدث يمكنك الحصول على الملف أو الملفات التي اختارها المستخدم من حقل entries لهذا الكائن، وهو صفيف من كائنات FileSystemFileEntry.

الأنواع

FileHandlerExecuteEventDetails

الحمولة لتفاصيل الحدث لحدث fileBrowserHandler.onExecute

أماكن إقامة

  • الإدخالات

    any[]

    صفيف من نُسخ Entry التي تمثّل الملفات المستهدَفة لهذا الإجراء (يتم اختيارها في متصفّح ملفات ChromeOS).

  • tab_id

    رقم اختياري

    رقم تعريف علامة التبويب التي تسبّبت في حدوث هذا الحدث. تكون أرقام تعريف علامات التبويب فريدة داخل جلسة المتصفّح.

الفعاليات

onExecute

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

يتم تشغيله عند تنفيذ إجراء نظام الملفات من متصفّح ملفات ChromeOS.

المعلمات