בניית אפליקציות באמצעות AngularJS

המדריך הזה יעזור לכם להתחיל לפתח אפליקציות Chrome באמצעות מסגרת MVC של AngularJS. כדי להדגים את הפעולה של Angular, נתייחס לאפליקציה בפועל שנוצרה באמצעות ה-framework, Google Drive Upload. קוד המקור זמין ב-GitHub.

על היישום

מעלה הסרטונים של Google Drive

Google Drive Upload מאפשר למשתמשים להציג במהירות קבצים המאוחסנים בחשבון Google Drive שלהם ולבצע בהם פעולות, וכן להעלות קבצים חדשים באמצעות ממשקי ה-API לגרירה ושחרור HTML. זו דוגמה נהדרת לפיתוח אפליקציה שמשוחחת עם אחד מממשקי ה-API של Google; במקרה הזה, Google Drive API.

מעלה התוכן משתמש ב-OAuth2 כדי לגשת לנתוני המשתמש. ה-chrome.identity API מטפל באחזור אסימון OAuth עבור המשתמש המחובר, כך שעשינו את העבודה הקשה בשבילך! ברגע שיש לנו אסימון גישה לטווח ארוך, האפליקציות משתמשות ב-Google Drive API כדי לגשת לנתוני המשתמש.

התכונות העיקריות שהאפליקציה הזו משתמשת בהן:

  • הזיהוי האוטומטי של AngularJS עבור CSP
  • עיבוד רשימה של קבצים שאוחזרו מ-Google Drive API
  • HTML5 Filesystem API לשמירת סמלים של קבצים במצב אופליין
  • גרירה ושחרור של HTML5 לייבוא/העלאה של קבצים חדשים משולחן העבודה
  • XHR2 טעינת תמונות, בין דומיינים
  • chrome.identity API לאישור OAuth
  • פריימים ללא Chrome שקובעים את המראה והסגנון של סרגל הניווט של האפליקציה

יצירת המניפסט

לכל אפליקציות Chrome נדרש קובץ manifest.json שמכיל את המידע הנדרש ל-Chrome כדי להפעיל את האפליקציה. המניפסט מכיל מטא-נתונים רלוונטיים ומפרט את כל ההרשאות המיוחדות שהאפליקציה צריכה כדי לפעול.

גרסה מקוצרת של המניפסט של מעלה הסרטון נראית כך:

{
  "name": "Google Drive Uploader",
  "version": "0.0.1",
  "manifest_version": 2,
  "oauth2": {
    "client_id": "665859454684.apps.googleusercontent.com",
    "scopes": [
      "https://www.googleapis.com/auth/drive"
    ]
  },
 ...
  "permissions": [
    "https://docs.google.com/feeds/",
    "https://docs.googleusercontent.com/",
    "https://spreadsheets.google.com/feeds/",
    "https://ssl.gstatic.com/",
    "https://www.googleapis.com/"
  ]
}

החלקים החשובים ביותר במניפסט הזה הם הקטעים oauth2 ו-permissions.

הקטע oauth2 מגדיר את הפרמטרים הנדרשים ל-OAuth2 כדי לעשות את הקסם שלו. כדי ליצור "client_id", פועלים לפי ההוראות במאמר קבלת מזהה לקוח. ב'היקפים' מפורטים היקפי ההרשאות שאסימון ה-OAuth יהיה בתוקף עבורם (לדוגמה, ממשקי ה-API שהאפליקציה רוצה לגשת אליהם).

הקטע 'הרשאות' כולל כתובות URL שלאפליקציה תהיה גישה אליהן דרך XHR2. הקידומות של כתובות ה-URL נחוצות כדי ש-Chrome יוכל לדעת אילו בקשות בין דומיינים לאפשר.

יצירת דף האירוע

לכל אפליקציות Chrome נדרש סקריפט/דף ברקע כדי להפעיל את האפליקציה ולהגיב לאירועי מערכת.

בסקריפט background.js, מעלה הקבצים של Drive פותח חלון בגודל 500x600 פיקסלים לדף הראשי. הוא גם מציין את הגובה והרוחב המינימליים של החלון, כדי שהתוכן לא יהיה דחוס מדי:

chrome.app.runtime.onLaunched.addListener(function(launchData) {
  chrome.app.window.create('../main.html', {
    id: "GDriveExample",
    bounds: {
      width: 500,
      height: 600
    },
    minWidth: 500,
    minHeight: 600,
    frame: 'none'
  });
});

החלון נוצר כחלון ללא לחצנים (מסגרת: 'none'). כברירת מחדל, העיבוד של חלונות מתבצע עם סרגל סגירה/הרחבה/הקטנה של מערכת ההפעלה, שמוגדר כברירת מחדל:

Google Drive Editor ללא מסגרת

מעלה התוכן משתמש ב-frame: 'none' כדי לעבד את החלון כ "לוח ריק" ויוצר לחצן סגירה מותאם אישית ב-main.html:

Google Drive Upload עם מסגרת מותאמת אישית

כל אזור הניווט מוקף ב