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