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