होम पेज

होम पेज, Google Workspace के ऐड-ऑन की नई सुविधा है. इसकी मदद से, एक या उससे ज़्यादा बिना कॉन्टेक्स्ट वाले कार्ड तय किए जा सकते हैं. नॉन-कॉन्टेक्स्टुअल कार्ड का इस्तेमाल, यूज़र इंटरफ़ेस दिखाने के लिए किया जाता है. ऐसा तब होता है, जब उपयोगकर्ता किसी खास कॉन्टेक्स्ट से बाहर हो. जैसे, जब उपयोगकर्ता अपना Gmail इनबॉक्स देख रहा हो, लेकिन उसने कोई मैसेज या ड्राफ़्ट न खोला हो.

होम पेज पर, बिना किसी कॉन्टेक्स्ट वाला कॉन्टेंट दिखाया जा सकता है. जैसे, क्विक-ऐक्सेस साइड पैनल (Keep, Calendar, और Tasks) में मौजूद Google ऐप्लिकेशन. होम पेज, किसी उपयोगकर्ता के लिए ऐड-ऑन को पहली बार खोलने पर शुरुआती जगह भी उपलब्ध करा सकते हैं. साथ ही, नए उपयोगकर्ताओं को यह सिखाने के लिए भी फ़ायदेमंद होते हैं कि ऐड-ऑन के साथ कैसे इंटरैक्ट किया जाए.

अपने ऐड-ऑन के लिए होम पेज तय किया जा सकता है. इसके लिए, आपको अपने प्रोजेक्ट के मेनिफ़ेस्ट में होम पेज की जानकारी देनी होगी. साथ ही, एक या उससे ज़्यादा homepageTrigger फ़ंक्शन लागू करने होंगे. ज़्यादा जानकारी के लिए, होम पेज का कॉन्फ़िगरेशन देखें.

आपके पास कई होम पेज हो सकते हैं. हर होस्ट ऐप्लिकेशन के लिए एक होम पेज होता है. आपके पास एक ऐसा डिफ़ॉल्ट होम पेज सेट करने का विकल्प भी होता है जिसका इस्तेमाल उन होस्ट में किया जाता है जहां आपने कस्टम होम पेज सेट नहीं किया है.

आपका ऐड-ऑन होम पेज तब दिखता है, जब इनमें से कोई एक शर्त पूरी होती है:

  • जब ऐड-ऑन को पहली बार होस्ट में खोला जाता है (अनुमति देने के बाद).
  • जब उपयोगकर्ता, ऐड-ऑन खुला होने के दौरान कॉन्टेक्स्ट के हिसाब से काम करने वाली सुविधा से कॉन्टेक्स्ट के हिसाब से काम न करने वाली सुविधा पर स्विच करता है. उदाहरण के लिए, Calendar इवेंट में बदलाव करने से लेकर मुख्य Calendar तक.
  • जब उपयोगकर्ता, हर दूसरे कार्ड को इंटरनल स्टैक से हटाने के लिए, 'वापस जाएं' बटन पर कई बार क्लिक करता है.
  • जब कॉन्टेक्स्ट के हिसाब से काम न करने वाले कार्ड में यूज़र इंटरफ़ेस (यूआई) के साथ इंटरैक्ट करने पर, Navigation.popToRoot() कॉल होता है.

होम पेज डिज़ाइन करना ज़रूरी नहीं है, लेकिन हमारा सुझाव है कि आप ऐसा करें. अगर आपने कोई होम पेज डिज़ाइन नहीं किया है, तो जब भी कोई उपयोगकर्ता होम पेज पर जाएगा, तब उसे एक सामान्य कार्ड दिखेगा. इसमें आपके ऐड-ऑन का नाम होगा.

होम पेज का कॉन्फ़िगरेशन

Google Workspace ऐड-ऑन, addOns.common.homepageTrigger फ़ील्ड का इस्तेमाल करते हैं. इससे ऐड-ऑन के मेनिफ़ेस्ट में मौजूद सभी होस्ट ऐप्लिकेशन के लिए, डिफ़ॉल्ट होम पेज (बिना कॉन्टेक्स्ट वाला) ऐड-ऑन कॉन्टेंट कॉन्फ़िगर किया जा सकता है:

    {
      "addOns": {
        "common": {
          "homepageTrigger": {
            "runFunction": "myFunction",
            "enabled": true
          }
        }
      }
    }
  • runFunction: यह Apps Script फ़ंक्शन का नाम है. Google Workspace ऐड-ऑन फ़्रेमवर्क, इस फ़ंक्शन को होम पेज पर ऐड-ऑन कार्ड रेंडर करने के लिए कॉल करता है. यह फ़ंक्शन, होम पेज ट्रिगर करने वाला फ़ंक्शन है. इस फ़ंक्शन को होम पेज के यूज़र इंटरफ़ेस (यूआई) को बनाने वाले Card ऑब्जेक्ट की एक कैटगरी बनानी चाहिए और उसे दिखाना चाहिए. अगर एक से ज़्यादा कार्ड दिखाए जाते हैं, तो होस्ट ऐप्लिकेशन, कार्ड के हेडर को एक सूची में दिखाता है. उपयोगकर्ता इनमें से कोई कार्ड चुन सकता है (एक से ज़्यादा कार्ड दिखाना लेख पढ़ें).

  • enabled: इस स्कोप के लिए होम पेज कार्ड चालू किए जाने चाहिए या नहीं. यह फ़ील्ड भरना ज़रूरी नहीं है. इसकी डिफ़ॉल्ट वैल्यू true होती है. इसे false पर सेट करने से, सभी होस्ट के लिए होम पेज कार्ड बंद हो जाते हैं. हालांकि, अगर किसी होस्ट के लिए इसे बदला जाता है, तो यह लागू नहीं होता. इसके बारे में यहां देखें.

सामान्य कॉन्फ़िगरेशन के अलावा, हर होस्ट ऐप्लिकेशन के कॉन्फ़िगरेशन में, हर होस्ट के हिसाब से एक जैसे स्ट्रक्चर वाले ओवरराइड भी उपलब्ध होते हैं. ये addOns.gmail.homepageTrigger, addOns.calendar.homepageTrigger वगैरह पर उपलब्ध होते हैं.

यहां दिए गए उदाहरण में एक ऐसा मेनिफ़ेस्ट दिखाया गया है जिसमें होम पेज को ट्रिगर करने की सामान्य सुविधा को तय किया गया है. हालांकि, Calendar और Drive के लिए इसे कस्टम फ़ंक्शन से बदल दिया गया है. साथ ही, Gmail के लिए इसे पूरी तरह से बंद कर दिया गया है. इस कॉन्फ़िगरेशन में, सामान्य buildHomePage फ़ंक्शन कभी भी लागू नहीं होता, क्योंकि इसे या तो बदल दिया जाता है या होस्ट बंद कर दी जाती है.

    {
      ...
      "addOns": {
        ...
        "common": {
          "homepageTrigger": { "runFunction": "buildHomePage" }
        },
        "calendar": {
          "homepageTrigger": { "runFunction": "buildCalendarHomepage" }
        },
        "drive": {
          "homepageTrigger": { "runFunction": "buildDriveHomepage" }
        },
        "gmail": {
          "homepageTrigger": { "enabled": false }
        },
        ...
      }
    }

ध्यान दें कि मेनिफ़ेस्ट का यह स्निपेट, पिछले उदाहरण के बराबर है. भले ही, इसमें डिफ़ॉल्ट homepageTrigger और Gmail कॉन्फ़िगरेशन को शामिल न किया गया हो:

    {
      "addOns": {
        "common": {},
        "calendar": {
          "homepageTrigger": { "runFunction": "myCalendarFunction" }
        },
        "drive": {
          "homepageTrigger": { "runFunction": "myDriveFunction" }
        },
        "gmail": {},
        ...
      }
    }

homepageTrigger सेक्शन में से किसी को भी भरना ज़रूरी नहीं है. हालांकि, किसी भी होस्ट प्रॉडक्ट में ऐड-ऑन के लिए दिखाया गया यूज़र इंटरफ़ेस (यूआई), उससे जुड़े मेनिफ़ेस्ट फ़ील्ड की मौजूदगी पर निर्भर करता है. साथ ही, यह भी ज़रूरी है कि उससे कोई homepageTrigger जुड़ा हो. यहां दिए गए उदाहरण में दिखाया गया है कि अलग-अलग मेनिफ़ेस्ट कॉन्फ़िगरेशन के लिए, होम पेज का यूज़र इंटरफ़ेस (यूआई) बनाने के लिए, कौनसे ऐड-ऑन ट्रिगर फ़ंक्शन (अगर कोई हो) लागू किए जाते हैं:

ऐड-ऑन के होम पेज को ट्रिगर करने वाले फ़ंक्शन के एक्ज़ीक्यूशन फ़्लो को दिखाने वाला डायग्राम

होम पेज के इवेंट ऑब्जेक्ट

कॉल किए जाने पर, ऊपर बताए गए होम पेज ट्रिगर फ़ंक्शन (runFunction) को इवेंट ऑब्जेक्ट पास किया जाता है. इसमें इनवॉकेशन कॉन्टेक्स्ट का डेटा होता है.

होम पेज के इवेंट ऑब्जेक्ट में, विजेट या कॉन्टेक्स्ट के बारे में जानकारी शामिल नहीं होती. पास की गई जानकारी, यहां दिए गए सामान्य इवेंट ऑब्जेक्ट फ़ील्ड तक सीमित होती है:

ज़्यादा जानकारी के लिए, इवेंट ऑब्जेक्ट देखें.

अन्य कार्ड, जिनमें संदर्भ के हिसाब से जानकारी नहीं होती

आपके ऐड-ऑन के यूज़र इंटरफ़ेस (यूआई) में, कॉन्टेक्स्ट से बाहर के अतिरिक्त कार्ड शामिल हो सकते हैं. ये होम पेज नहीं होते. उदाहरण के लिए, आपके होम पेज पर एक बटन हो सकता है. इस बटन पर क्लिक करने से "सेटिंग" कार्ड खुलता है. यहां उपयोगकर्ता, ऐड-ऑन की सेटिंग में बदलाव कर सकता है. ज़्यादातर मामलों में, ऐसी सेटिंग कॉन्टेक्स्ट से जुड़ी नहीं होती हैं. इसलिए, इन्हें कॉन्टेक्स्ट के हिसाब से नहीं बनाया जाता.

कॉन्टेक्स्ट के हिसाब से काम न करने वाले कार्ड, किसी अन्य कार्ड की तरह ही बनाए जाते हैं. इनमें सिर्फ़ यह अंतर होता है कि किस कार्रवाई या इवेंट से कार्ड जनरेट होता है और दिखता है. कार्ड के बीच ट्रांज़िशन बनाने के तरीके के बारे में जानने के लिए, नेविगेशन के तरीके देखें.