chrome.fileBrowserHandler

תיאור

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

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

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

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

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

הרשאות

fileBrowserHandler

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

זמינות

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

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

סוגים

FileHandlerExecuteEventDetails

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

תכונות

  • רשומות

    כל[]

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

  • tab_id

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

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

אירועים

onExecute

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

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

פרמטרים