תיאור
כדי להרחיב את דפדפן הקבצים של ChromeOS, צריך להשתמש ב-API של chrome.fileBrowserHandler
. לדוגמה, תוכלו להשתמש ב-API הזה כדי לאפשר למשתמשים להעלות קבצים לאתר שלכם.
מושגים ושימוש
דפדפן הקבצים של ChromeOS מופיע כשהמשתמש לוחץ על Alt+Shift+M או מחבר מכשיר אחסון חיצוני, כמו כרטיס SD, מפתח USB, כונן חיצוני או מצלמה דיגיטלית. מלבד הצגת הקבצים בהתקנים חיצוניים, דפדפן הקבצים יכול להציג גם קבצים שהמשתמש שמר בעבר במערכת.
כשהמשתמש בוחר קובץ אחד או יותר, דפדפן הקבצים מוסיף לחצנים שמייצגים את רכיבי ה-handler החוקיים של הקבצים האלה. לדוגמה, בצילום המסך הבא, בחירה בקובץ עם הסיומת '.png' תוביל ללחצן 'שמירה בגלריה' שהמשתמש יכול ללחוץ עליו.
הרשאות
fileBrowserHandler
עליך להצהיר על ההרשאה "fileBrowserHandler"
במניפסט התוסף.
זמינות
צריך להשתמש בשדה "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.
פרמטרים
-
קריאה חוזרת (callback)
פונקציה
הפרמטר
callback
נראה כך:(id: string, details: FileHandlerExecuteEventDetails) => void
-
id
מחרוזת
-