AngularJS की मदद से ऐप्लिकेशन बनाएं

यह गाइड, AngularJS MVC फ़्रेमवर्क के साथ Chrome ऐप्लिकेशन बनाने में आपकी मदद करती है. Angular को इस्तेमाल करने का तरीका दिखाने के लिए, हम फ़्रेमवर्क का इस्तेमाल करके बनाए गए असल ऐप्लिकेशन, Google Drive अपलोडर के बारे में बताएंगे. सोर्स कोड, GitHub पर उपलब्ध है.

ऐप्लिकेशन के बारे में जानकारी

Google Drive अपलोडर

Google Drive अपलोडर की मदद से उपयोगकर्ता अपने Google Drive खाते में सेव की गई फ़ाइलों को तुरंत देख सकते हैं और उनसे इंटरैक्ट कर सकते हैं. साथ ही, HTML Drag and Drop API का इस्तेमाल करके नई फ़ाइलें अपलोड कर सकते हैं. यह एक ऐसा ऐप्लिकेशन बनाने का एक अच्छा उदाहरण है जो Google के किसी एक एपीआई से काम करता है; इस मामले में, Google Drive API.

उपयोगकर्ता का डेटा ऐक्सेस करने के लिए, अपलोडर OAuth2 का इस्तेमाल करता है. chrome.identity API, लॉग इन किए हुए उपयोगकर्ता के लिए OAuth टोकन को फ़ेच करने की प्रक्रिया को हैंडल करता है. इसलिए, हमारे लिए बहुत मेहनत करनी पड़ती है! जब हमारे पास लंबे समय तक चलने वाला ऐक्सेस टोकन होता है, तो ऐप्लिकेशन उपयोगकर्ता के डेटा को ऐक्सेस करने के लिए Google Drive API का इस्तेमाल करते हैं.

इस ऐप्लिकेशन में इस्तेमाल की जाने वाली मुख्य सुविधाएं:

  • सीएसपी के लिए, AngularJS की अपने-आप पहचान करने की सुविधा
  • Google Drive API से फ़ेच की गई फ़ाइलों की सूची बनाएं
  • फ़ाइल आइकॉन को ऑफ़लाइन सेव करने के लिए HTML5 Filesystem API
  • डेस्कटॉप से नई फ़ाइलें इंपोर्ट/अपलोड करने के लिए, HTML5 खींचें और छोड़ें
  • इमेज, क्रॉस-डोमेन लोड करने के लिए XHR2
  • OAuth की अनुमति के लिए chrome.identity API
  • ऐप्लिकेशन के नेवबार के लुक और स्टाइल को तय करने के लिए, 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 टोकन मान्य होगा. उदाहरण के लिए, वे एपीआई जिन्हें ऐप्लिकेशन ऐक्सेस करना चाहता है.

"अनुमतियां" सेक्शन में वे यूआरएल शामिल होते हैं जिन्हें ऐप्लिकेशन, XHR2 के ज़रिए ऐक्सेस करेगा. यूआरएल प्रीफ़िक्स ज़रूरी हैं, ताकि Chrome यह जान सके कि किस क्रॉस-डोमेन अनुरोधों को अनुमति देनी है.

इवेंट पेज बनाना

सभी Chrome ऐप्स को ऐप्लिकेशन लॉन्च करने और सिस्टम इवेंट का जवाब देने के लिए बैकग्राउंड स्क्रिप्ट/पेज की ज़रूरत होती है.

अपनी background.js स्क्रिप्ट में, Drive अपलोडर मुख्य पेज पर 500x600px की विंडो खोलता है. यह विंडो के लिए एक कम से कम ऊंचाई और चौड़ाई भी तय करता है, ताकि कॉन्टेंट ज़्यादा न दिखे:

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 अपलोडर

नेविगेशन का पूरा एरिया,