الوصف
استخدِم واجهة برمجة التطبيقات chrome.fileBrowserHandler لتوسيع نطاق متصفّح الملفات في ChromeOS. على سبيل المثال، يمكنك استخدام واجهة برمجة التطبيقات هذه للسماح للمستخدمين بتحميل الملفات إلى موقعك الإلكتروني.
المفاهيم والاستخدام
يظهر مستعرض الملفات في ChromeOS عندما يضغط المستخدم على Alt+Shift+M أو يوصّل جهاز تخزين خارجيًا، مثل بطاقة SD أو مفتاح USB أو محرّك أقراص خارجي أو كاميرا رقمية. بالإضافة إلى عرض الملفات على الأجهزة الخارجية، يمكن لمتصفّح الملفات أيضًا عرض الملفات التي حفظها المستخدم سابقًا في النظام.
عندما يختار المستخدم ملفًا واحدًا أو أكثر، يضيف مستعرض الملفات أزرارًا تمثّل المعالِجات الصالحة لهذه الملفات. على سبيل المثال، في لقطة الشاشة التالية، يؤدي اختيار ملف لاحقة اسمه ".png" إلى ظهور الزر "حفظ في معرض الصور" الذي يمكن للمستخدم النقر عليه.
الأذونات
fileBrowserHandlerيجب الإفصاح عن إذن "fileBrowserHandler" في بيان الإضافة.
مدى التوفّر
يجب استخدام الحقل "file_browser_handlers" لتسجيل الإضافة كمعالج لنوع ملف واحد على الأقل. يجب أيضًا توفير رمز بحجم 16 × 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 الخاص بـ browser.fileBrowserHandler. سيتم استدعاء الدالة كلما نقر المستخدم على الزر الذي يمثّل معالج متصفّح الملفات. في الدالة، استخدِم File System API للوصول إلى محتوى الملف. يُرجى الاطّلاع على المثال أدناه:
browser.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.
الخصائص
-
entries
any[]
مصفوفة من مثيلات Entry تمثّل الملفات التي تستهدفها هذه العملية (المحدّدة في متصفّح الملفات في ChromeOS).
-
tab_id
number اختياري
رقم تعريف علامة التبويب التي أدت إلى ظهور هذا الحدث. تكون أرقام تعريف علامات التبويب فريدة ضمن جلسة المتصفّح.
الفعاليات
onExecute
chrome.fileBrowserHandler.onExecute.addListener(
callback: function,
)
يتم تنشيط هذا الحدث عند تنفيذ إجراء نظام الملفات من متصفّح الملفات في ChromeOS.
المعلمات
-
callback
دالة
تظهر المَعلمة
callbackعلى النحو التالي:(id: string, details: FileHandlerExecuteEventDetails) => void
-
id
سلسلة
-
التفاصيل
-