হোমপেজ

হোমপেজ হলো গুগল ওয়ার্কস্পেসের একটি অ্যাড-অন ফিচার, যা এক বা একাধিক প্রসঙ্গ-নিরপেক্ষ কার্ড নির্ধারণ করার সুযোগ দেয়। ব্যবহারকারী যখন কোনো নির্দিষ্ট প্রসঙ্গের বাইরে থাকেন, তখন প্রসঙ্গ-নিরপেক্ষ কার্ডগুলো একটি ইউজার ইন্টারফেস প্রদর্শন করে; যেমন, কোনো খোলা মেসেজ বা ড্রাফট ছাড়া নিজের জিমেইল ইনবক্স দেখার সময়।

হোমপেজ আপনাকে প্রসঙ্গ-বহির্ভূত কন্টেন্ট দেখানোর সুযোগ দেয়, যা কুইক-অ্যাক্সেস সাইড প্যানেলের গুগল অ্যাপগুলোর (যেমন গুগল কিপ, গুগল ক্যালেন্ডার এবং গুগল টাস্ক) মতোই। কোনো ব্যবহারকারী যখন প্রথমবার আপনার অ্যাড-অনটি খোলে, তখন হোমপেজ একটি প্রাথমিক সূচনা স্থান হিসেবেও কাজ করতে পারে এবং নতুন ব্যবহারকারীদের আপনার অ্যাড-অনটি কীভাবে ব্যবহার করতে হয় তা শেখানোর জন্যও এটি উপযোগী।

আপনার প্রজেক্ট ম্যানিফেস্টে হোমপেজটি উল্লেখ করে এবং এক বা একাধিক homepageTrigger ফাংশন ইমপ্লিমেন্ট করে আপনার অ্যাড-অনের জন্য একটি হোমপেজ নির্ধারণ করুন ( হোমপেজ কনফিগারেশন দেখুন)।

আপনার একাধিক হোমপেজ থাকতে পারে, আপনার অ্যাড-অনটি যে প্রতিটি হোস্ট অ্যাপ্লিকেশনকে সম্প্রসারিত করে, তার জন্য একটি করে। এছাড়াও আপনি একটি একক সাধারণ ডিফল্ট হোমপেজ নির্ধারণ করতে পারেন, যা সেইসব হোস্টে ব্যবহৃত হবে যেখানে আপনি কোনো কাস্টম হোমপেজ নির্দিষ্ট করেননি।

এই ক্ষেত্রে আপনার অ্যাড-অন হোমপেজ প্রদর্শিত হয়:

  • হোস্টে অ্যাড-অনটি প্রথমবার খোলার সময় (অনুমোদনের পরে)।
  • যখন অ্যাড-অনটি খোলা থাকা অবস্থায় ব্যবহারকারী একটি প্রাসঙ্গিক প্রেক্ষাপট থেকে একটি অপ্রাসঙ্গিক প্রেক্ষাপটে যান। উদাহরণস্বরূপ, ক্যালেন্ডারের কোনো ইভেন্ট সম্পাদনা করা থেকে মূল ক্যালেন্ডারে যাওয়া।
  • যখন ব্যবহারকারী অভ্যন্তরীণ স্ট্যাকগুলো থেকে একটির পর একটি কার্ড বের করার জন্য যথেষ্ট সংখ্যক বার ব্যাক বাটনে ক্লিক করেন।
  • যখন একটি অ-প্রাসঙ্গিক কার্ডে UI ইন্টারঅ্যাকশনের ফলে একটি Navigation.popToRoot কল হয়।

একটি হোমপেজ ডিজাইন করার পরামর্শ দেওয়া হয়। আপনি যদি কোনো হোমপেজ নির্ধারণ না করেন, তবে ব্যবহারকারী যখনই হোমপেজে যান, তখন আপনার অ্যাড-অনের নাম সম্বলিত একটি জেনেরিক কার্ড ব্যবহৃত হয়।

হোমপেজ কনফিগারেশন

গুগল ওয়ার্কস্পেস অ্যাড-অনগুলি অ্যাড-অন ম্যানিফেস্টে হোস্ট অ্যাপ্লিকেশনগুলির জন্য ডিফল্ট হোমপেজ (অ-প্রাসঙ্গিক) অ্যাড-অন কন্টেন্ট কনফিগার করতে addOns.common.homepageTrigger ফিল্ডটি ব্যবহার করে:

{
  "addOns": {
    "common": {
      "homepageTrigger": {
        "runFunction": "myFunction",
        "enabled": true
      }
    }
  }
}
  • runFunction : এটি সেই গুগল অ্যাপস স্ক্রিপ্ট ফাংশনের নাম, যা গুগল ওয়ার্কস্পেস অ্যাড-অন ফ্রেমওয়ার্ক হোমপেজের অ্যাড-অন কার্ডগুলো রেন্ডার করার জন্য কল করে। এই ফাংশনটি হলো হোমপেজ ট্রিগার ফাংশন । এই ফাংশনটিকে অবশ্যই Card অবজেক্টের একটি অ্যারে তৈরি করে ফেরত দিতে হবে, যা হোমপেজের ইউজার ইন্টারফেস (UI) গঠন করে। যদি একাধিক কার্ড ফেরত আসে, তাহলে হোস্ট অ্যাপ্লিকেশনটি কার্ডের হেডারগুলো একটি তালিকায় দেখায়, যেখান থেকে ব্যবহারকারী কার্ড নির্বাচন করতে পারেন ( একাধিক কার্ড ফেরত দেওয়া দেখুন)।

  • enabled : এই স্কোপের জন্য হোমপেজ কার্ড সক্রিয় করা হবে কিনা। এই ফিল্ডটি ঐচ্ছিক, এবং এর ডিফল্ট মান হলো true । এটিকে false সেট করলে সমস্ত হোস্টের জন্য হোমপেজ কার্ড নিষ্ক্রিয় হয়ে যাবে (যদি না সেই হোস্টের জন্য অন্য কোনো ব্যবস্থা নেওয়া হয়; সেক্ষেত্রে হোস্ট-নির্দিষ্ট কনফিগারেশন দেখুন)।

কোনো হোস্টকে কমন হোমপেজ ব্যবহার করতে হলে, অ্যাড-অন ম্যানিফেস্টে addOns.common.homepageTrigger এবং হোস্টটির টপ-লেভেল রিসোর্স উভয়ই উপস্থিত থাকতে হবে। উদাহরণস্বরূপ, যদি ম্যানিফেস্টে addOns.gmail উপস্থিত না থাকে, তাহলে অ্যাড-অনটি Gmail-এর জন্য নিষ্ক্রিয় হয়ে যাবে এবং সেই হোস্টে কোনো হোমপেজ বা অন্যান্য কার্যকারিতা প্রদর্শন করবে না।

সাধারণ কনফিগারেশন ছাড়াও, প্রতিটি হোস্ট অ্যাপ্লিকেশনের কনফিগে, addOns.gmail.homepageTrigger , addOns.calendar.homepageTrigger এবং অন্যান্য হোস্ট-নির্দিষ্ট ট্রিগারগুলিতে অভিন্ন কাঠামোর প্রতি-হোস্ট ওভাররাইড উপলব্ধ রয়েছে।

নিম্নলিখিত উদাহরণটি এমন একটি ম্যানিফেস্ট দেখায় যেখানে একটি সাধারণ হোমপেজ ট্রিগার সংজ্ঞায়িত করা হয়েছে, কিন্তু ক্যালেন্ডার এবং ড্রাইভের জন্য কাস্টম ফাংশন দিয়ে এটিকে ওভাররাইড করা হয়েছে এবং জিমেইলের জন্য নিষ্ক্রিয় করা হয়েছে। এই কনফিগারেশনে, সাধারণ 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 সেকশনগুলোর কোনোটিই আবশ্যক নয়। একটি হোস্ট প্রোডাক্টে কোনো অ্যাড-অনের জন্য প্রদর্শিত UI নির্ভর করে সংশ্লিষ্ট ম্যানিফেস্ট ফিল্ডের উপস্থিতি এবং এর সাথে কোনো homepageTrigger আছে কি না তার উপর। নিম্নলিখিত উদাহরণটি দেখায় যে, বিভিন্ন ম্যানিফেস্ট কনফিগারেশনের জন্য হোমপেজ UI তৈরি করতে কোন অ্যাড-অন ট্রিগার ফাংশনগুলো কার্যকর করা হয়:

অ্যাড-অন হোমপেজ ট্রিগার ফাংশনের কার্যপ্রবাহ দেখানো ডায়াগ্রাম

হোমপেজ ইভেন্ট অবজেক্ট

কল করা হলে, পূর্বে বর্ণিত হোমপেজ ট্রিগার ফাংশনটিকে ( runFunction ) ইনভোকেশন কনটেক্সট থেকে ডেটা সম্বলিত একটি ইভেন্ট অবজেক্ট পাস করা হয়।

হোমপেজ ইভেন্ট অবজেক্টে উইজেট বা প্রাসঙ্গিক তথ্য অন্তর্ভুক্ত থাকে না। প্রেরিত তথ্য নিম্নলিখিত সাধারণ ইভেন্ট অবজেক্ট ফিল্ডগুলির মধ্যে সীমাবদ্ধ থাকে:

আরও বিস্তারিত জানতে ইভেন্ট অবজেক্টটি দেখুন।

অন্যান্য অপ্রাসঙ্গিক কার্ড

আপনার অ্যাড-অন UI-তে অতিরিক্ত অপ্রাসঙ্গিক কার্ড থাকতে পারে যেগুলো হোমপেজ নয়। উদাহরণস্বরূপ, আপনার হোমপেজে এমন একটি বাটন থাকতে পারে যা অ্যাড-অন সেটিংস সমন্বয় করার জন্য একটি "সেটিংস" কার্ড খোলে (এই ধরনের সেটিংস সাধারণত প্রাসঙ্গিকতার ওপর নির্ভরশীল নয়)।

নন-কনটেক্সচুয়াল কার্ডগুলো অন্য যেকোনো কার্ডের মতোই তৈরি করা হয়; একমাত্র পার্থক্য হলো কোন অ্যাকশন বা ইভেন্ট কার্ডটি তৈরি ও প্রদর্শন করে। কার্ডগুলোর মধ্যে ট্রানজিশন কীভাবে তৈরি করতে হয়, সে সম্পর্কে বিস্তারিত জানতে নেভিগেশন মেথডগুলো দেখুন।