browser.fileBrowserHandler

תיאור

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

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

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

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

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

הרשאות

fileBrowserHandler

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

זמינות

ChromeOS only Foreground only

צריך להשתמש בשדה "file_browser_handlers" כדי לרשום את התוסף כמטפל בלפחות סוג אחד של קובץ. כדאי גם לספק סמל בגודל 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"
  },
  ...
}

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

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

סוגים

FileHandlerExecuteEventDetails

המטען הייעודי של פרטי האירוע עבור האירוע fileBrowserHandler.onExecute.

מאפיינים

  • entries

    כל ערך[]

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

  • tab_id

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

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

אירועים

onExecute

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

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

פרמטרים