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

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

על היישום

מעלה התוכן של Google Drive

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

מעלה התוכן משתמש ב-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 ו'הרשאות' .

האות '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 מעלה סרטונים ללא מסגרת

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

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

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