إنشاء تطبيقات باستخدام AngularJS

يساعدك هذا الدليل على بدء إنشاء تطبيقات Chrome باستخدام إطار عمل MVC من AngularJS. لتوضيح عمل Angular أثناء الاستخدام، سنشير إلى تطبيق فعلي تم إنشاؤه باستخدام إطار العمل، وهو برنامج التحميل من Google Drive. يتوفّر رمز المصدر على GitHub.

لمحة عن التطبيق

برنامج تحميل Google Drive

يتيح برنامج التحميل من Google Drive للمستخدمين عرض الملفات المخزنة في حسابهم على Google Drive والتفاعل معها بسرعة بالإضافة إلى تحميل ملفات جديدة باستخدام واجهات برمجة تطبيقات سحب وإفلات HTML. وهو مثال رائع لإنشاء تطبيق يتواصل مع إحدى واجهات برمجة التطبيقات من Google، وهي في هذه الحالة واجهة برمجة تطبيقات Google Drive.

يستخدم برنامج التحميل OAuth2 للوصول إلى بيانات المستخدم. تعالج واجهة برمجة التطبيقات chrome.identity API جلب رمز OAuth المميّز للمستخدم الذي تم تسجيل دخوله، وبالتالي يتم إنجاز المهام الصعبة نيابةً عنا. بعد حصولنا على رمز دخول طويل الأمد، تستخدم التطبيقات Google Drive API للوصول إلى بيانات المستخدم.

الميزات الرئيسية التي يستخدمها هذا التطبيق:

إنشاء البيان

تتطلّب جميع تطبيقات 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 المميز صالحًا لها (على سبيل المثال، واجهات برمجة التطبيقات التي يريد التطبيق الوصول إليها).

يتضمن قسم "الأذونات" عناوين URL التي سيصل إليها التطبيق عبر XHR2. وتكون بادئات عناوين URL مطلوبة لكي يعرف Chrome الطلبات عبر النطاقات المسموح بها.

إنشاء صفحة الحدث

تتطلب جميع تطبيقات Chrome نصًا برمجيًا/صفحةً للخلفية لتشغيل التطبيق والاستجابة إلى أحداث النظام.

في النص البرمجي background.js، يفتح برنامج تحميل Drive نافذة بحجم 500×600 بكسل على الصفحة الرئيسية. كما يحدد الحد الأدنى للارتفاع والعرض للنافذة حتى لا يصبح المحتوى معقدًا:

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'
  });
});

ويتم إنشاء النافذة كنافذة بلا عنصر تحكم (الإطار: 'بدون'). بشكل افتراضي، يتم عرض النوافذ باستخدام شريط الإغلاق/التوسيع/التصغير الافتراضي في نظام التشغيل:

برنامج تحميل Google Drive بدون إطار

يستخدم برنامج التحميل frame: 'none' لعرض النافذة على شكل "قائمة فارغة" وإنشاء زر إغلاق مخصّص في main.html:

برنامج تحميل Google Drive مع إطار مخصص

يتم التفاف منطقة التنقل بالكامل في