تتيح لك معالجة الملفات ضبط نظام التشغيل ChromeOS كي تتمكّن الإضافة من فتح الملفات باستخدام القائمة "فتح" في قائمة الملف أو قائمة "فتح باستخدام" في قائمة السياق. بعد فتحه، يمكنك معالجة بيانات الملف باستخدام Launch Handler API لمنصة الويب. وعندئذٍ، يمكنك استخدام واجهات برمجة التطبيقات القياسية للنظام الأساسي للويب من أجل عرض الملف أو معالجته.
![إضافة معالج ملفات إلى القائمة "فتح" في نظام التشغيل ChromeOS](https://developer.chrome.google.cn/static/docs/extensions/how-to/web-platform/file-handling-chromeos/image/a-file-handler-added-the-4899ab22819fc.png?authuser=9&hl=ar)
مدى التوفّر في الإضافات
الإصدار 120 من ChromeOS أو إصدار أحدث
الأذونات
ليست هناك أذونات مطلوبة لمعالجة الملفات.
البيان
عليك إضافة الصفيفة "file_handlers"
إلى ملف حالة "ملف البيان.json".
السياقات الداعمة
يمكن استخدام واجهة برمجة التطبيقات هذه في مشغّلي الخدمات الإضافية أو النوافذ المنبثقة أو اللوحات الجانبية أو النصوص البرمجية للمحتوى.
إعداد معالج ملفات
يحدّد كل عضو في "file_handlers"
، أي معالِج الملفات، نوع الملف أو أنواعه التي سيتم التعامل معها من خلال صفحة إضافات معيّنة.
ستتم إضافة المعالِجات التي تحدِّدها إلى نافذة "الملفات" في ChromeOS، أي القائمة "فتح وفتح باستخدام" على وجه التحديد. وستظهر فقط في هذه القوائم عندما يحدد المستخدم ملفًا بالامتداد المحدد. على سبيل المثال، إذا حدّد معالج الملفات .txt
، لن تعرض قوائم ChromeOS هذا المعالج إلا عند اختيار ملف بهذه الإضافة.
معالجة ملف
معالج الملفات هو ملف HTML يتم تضمينه في إضافتك. عندما يختار المستخدم المعالج من قائمة، يتم فتح ملف HTML في علامة تبويب جديدة. وتتم معالجة الملف، سواء كنت تعرضه أو تستخدمه بطريقة أخرى، من خلال JavaScript باستخدام واجهات برمجة التطبيقات المناسبة للنظام الأساسي للويب. يجب أن يكون رمز المعالجة في ملف JavaScript منفصل وأن يتم تضمينه من خلال علامة <script>
ويجب أن يكون أيضًا في إضافتك. يستخدم ملف النص البرمجي واجهة LaunchQueue
في واجهة برمجة تطبيقات معالج الإطلاق للحصول على عنصر FileSystemFileHandle
.
مثال
يعرض المثال التالي كيفية الحصول على عنصر FileSystemFileHandle
باستخدام واجهة LaunchQueue
. للاطّلاع على طريقة معالجة الملفات بشكل عملي، ثبِّت العرض التوضيحي لمعالجة الملفات.
if ('launchQueue' in window) {
launchQueue.setConsumer(async launchParams => {
if (!launchParams.files || !launchParams.files.length) { return; }
const fileHandle = launchParams.files[0];
});
}
``````