chrome.fileBrowserHandler

תיאור

שימוש ב-API ‏chrome.fileBrowserHandler כדי להרחיב את דפדפן הקבצים של Chrome OS. לדוגמה, אפשר להשתמש ב-API הזה כדי לאפשר למשתמשים להעלות קבצים לאתר.

מושגים ושימוש

דפדפן הקבצים של ChromeOS מופיע כשהמשתמש מקשיב על Alt+Shift+M או מחבר התקן אחסון חיצוני, כמו כרטיס SD, מפתח USB, כונן חיצוני או מצלמה דיגיטלית. בנוסף להצגת הקבצים בהתקנים חיצוניים, דפדפן הקבצים יכול גם להציג קבצים שהמשתמש שמר בעבר במערכת.

כשהמשתמש בוחר קובץ אחד או יותר, בורר הקבצים מוסיף לחצנים שמייצגים את הטיפולים התקינים של הקבצים האלה. לדוגמה, בצילום המסך הבא, בחירה בקובץ עם הסיומת ‎.png מובילה להצגת הלחצן 'שמירה בגלריה', שעליו המשתמש יכול ללחוץ.

דפדפן קבצים ב-ChromeOS.
דפדפן קבצים ב-ChromeOS.

הרשאות

fileBrowserHandler

צריך להצהיר על ההרשאה "fileBrowserHandler" במניפסט של התוסף.

זמינות

ChromeOS בלבד חזית בלבד

צריך להשתמש בשדה "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"
  },
  ...
}

הטמעת handler של מנהל הקבצים והתיקיות

כדי להשתמש ב-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
הערך id מקובץ המניפסט. אם התוסף מטמיע כמה מנהלים, אפשר לבדוק את ערך המזהה כדי לראות איזה מנהל הופעל.
details
אובייקט שמתאר את האירוע. אפשר לקבל את הקובץ או הקבצים שהמשתמש בחר מהשדה entries של האובייקט הזה, שהוא מערך של אובייקטים מסוג FileSystemFileEntry.

סוגים

FileHandlerExecuteEventDetails

נתוני העומס של פרטי האירוע עבור האירוע fileBrowserHandler.onExecute.

מאפיינים

  • רשומות

    any[]

    מערך של מכונות Entry שמייצגות קבצים שהם מטרות של הפעולה הזו (נבחרו בדפדפן הקבצים של ChromeOS).

  • tab_id

    מספר אופציונלי

    המזהה של הכרטיסייה שהפעילה את האירוע הזה. מזהי הכרטיסיות הם ייחודיים בסשן הדפדפן.

אירועים

onExecute

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

האירוע מופעל כשפעולה במערכת הקבצים מתבצעת מדפדפן הקבצים של ChromeOS.

פרמטרים