chrome.fileBrowserHandler

الوصف

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

الأذونات

fileBrowserHandler

مدى توفّر الخدمة

نظام التشغيل ChromeOS فقط الواجهة فقط

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

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

لقطة شاشة لمتصفّح الملفات

البيان

يجب تعريف إذن "fileBrowserHandler" في بيان الإضافة، ويجب استخدام الحقل "file_browser_processs" لتسجيل الإضافة كمعالج لنوع ملف واحد على الأقل. يجب عليك أيضًا توفير رمز بحجم 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"
  },
  ...
}

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

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

الأنواع

FileHandlerExecuteEventDetails

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

أماكن إقامة

  • الإدخالات

    أي[]

    مصفوفة من حالات الإدخال التي تمثل الملفات المستهدفة لهذا الإجراء (يتم تحديدها في متصفِّح ملفات نظام التشغيل ChromeOS).

  • tab_id

    الرقم اختياري

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

فعاليات

onExecute

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

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

المَعلمات