ক্যাপটিভ পোর্টাল লগ-ইনের জন্য Android কাস্টম ট্যাব প্রয়োগ করা

Android কাস্টম ট্যাব সম্পূর্ণ ফিচারযুক্ত, সুরক্ষিত ও বাধাহীন ব্রাউজার অভিজ্ঞতা প্রদান করে। এটি সরাসরি নেটওয়ার্কে লগ-ইন করার ফ্লোয়ের মধ্যে ক্যাপটিভ পোর্টালের জন্য করা হয়। যেমন, এয়ারপোর্ট, হোটেল ও প্লেনে দেখা যায়। ব্যবহারকারীর প্রাথমিক ব্রাউজারকে যাচাইকরণ প্রসেসে ইন্টিগ্রেট করার মাধ্যমে, কাস্টম ট্যাব উন্নত কার্যকারিতা প্রদান করে, যার মধ্যে রয়েছে ক্রেডেনশিয়াল ও পেমেন্টের জন্য এক-ট্যাপ অটোফিল, DRM-সুরক্ষিত স্ট্রিমিং এবং VPN ও প্রাইভেট DNS-এর মতো নিরাপত্তা ফিচার সহ ব্যবহারকারীদের জন্য ধারাবাহিক কানেক্টিভিটি। কাস্টম ট্যাব সম্পর্কে আরও জানতে, Android কাস্টম ট্যাবের ওভারভিউ দেখুন।

লেগ্যাসি WebView-এর তুলনায় সুবিধা

কাস্টম ট্যাব ব্যবহার করে ব্যবহারকারীর প্রাথমিক ব্রাউজার ইন্টিগ্রেট করলে, নেটওয়ার্ক অপারেটরদের জন্য লেগ্যাসি WebView-ভিত্তিক যাচাইকরণ ফ্লোতে থাকা বেশ কিছু কার্যকারিতা সংক্রান্ত সীমাবদ্ধতা সমাধান হয়ে যায়:

  • সহজ ট্রানজ্যাকশন: ইন্টারফেসটি ক্রেডেনশিয়াল ও সেভ করা পেমেন্ট তথ্যের জন্য একবার ট্যাপ করে অটোফিল করার সুবিধা দেয়, এর ফলে লগ-ইন প্রসেস চলাকালীন ম্যানুয়ালি ডেটা এন্ট্রি করার প্রয়োজন হয় না। (ছবি ১ দেখুন।)
  • মিডিয়া মানানসই হওয়া: প্ল্যাটফর্মটি DRM-সুরক্ষিত কন্টেন্ট (যেমন Widevine) সাপোর্ট করে, এর ফলে এনক্রিপ্ট করা ভিডিও স্ট্রিম সরাসরি পোর্টালের মধ্যে প্লেব্যাক করা যায়। (ছবি ২ দেখুন।)
  • নিরাপত্তা কনফিগারেশনের জন্য সহায়তা: কাস্টম ট্যাব ভিপিএন বা ব্যক্তিগত ডিএনএস ব্যবহার করা ডিভাইসের জন্য পোর্টাল কার্যকারিতা বজায় রাখে, নিরাপত্তা ফিচার যা প্রায়ই স্ট্যান্ডার্ড ব্রাউজার রিডাইরেক্ট ব্যর্থ হওয়ার কারণ হয়।
  • ইন্টারফেসের ধারাবাহিকতা: কাস্টম ট্যাব সরাসরি সিস্টেম ব্রাউজারের সাথে ইন্টিগ্রেট করে, সম্পূর্ণ ব্রাউজার সেশনে উপলভ্য একই ফাংশনাল টুল এবং UI এলিমেন্ট প্রদান করে।
  • ব্যাকগ্রাউন্ডে চালু থাকা: পোর্টালটি ব্যাকগ্রাউন্ডে চালু থাকে এবং কানেকশন থাকাকালীন এটি অ্যাক্সেস পয়েন্ট হিসেবে কাজ করে।

ক্যাপটিভ পোর্টাল ম্যানুয়াল ইনপুট এবং
অটোফিল

ছবি ১. ম্যানুয়াল ইনপুট (WebView) বনাম অটোফিল (কাস্টম ট্যাব)।

ক্যাপটিভ পোর্টাল ভিডিও
প্লেব্যাক

ছবি ২. ভিডিও নেই (WebView) বনাম ভিডিও প্লেব্যাক (কাস্টম ট্যাব)।

কাস্টম ট্যাব ডিসকভারি ও কানেকশন ফ্লো

কাস্টম ট্যাব ইন্টারফেস প্রদান করলেও, Captive Portal API ডিসকভারি থেকে কানেকশন ইন্টেলিজেন্স ফ্লো ম্যানেজ করে:

  1. ডিসকভারি: নেটওয়ার্ক DHCP বিকল্প 114 ব্যবহার করে তার API কাজ করে বলে বিজ্ঞাপন দেয়।
  2. ইন্টার‍্যাকশন: Android ডিভাইস, নেটওয়ার্ক স্ট্যাটাস সহ JSON পেলোড ফেচ করার জন্য API এন্ডপয়েন্ট কোয়েরি করে।
  3. কানেকশন: JSON উত্তরে কাস্টম ট্যাব ব্যবহার করার কথা বলা থাকলে, সিস্টেম সাধারণ সিস্টেম উইন্ডোর পরিবর্তে হাই-পারফর্ম্যান্স ব্রাউজার এনভায়রনমেন্টে পোর্টাল খোলে।

Captive Portal API, captive ফিল্ড ব্যবহার করে কোনও ক্যাপটিভ পোর্টাল আছে কিনা তা Android ডিভাইসকে শনাক্ত করতে দেয়। API, Android সিস্টেম UI-তে venue-info-url এবং seconds-remaining-এর মতো অন্যান্য ফিল্ড ইন্টিগ্রেট করে।

কানেকশন
ফ্লোয়ের জন্য ক্যাপটিভ পোর্টাল ডিসকভারি

ছবি ৩. ক্যাপটিভ পোর্টাল API ডিসকভারি থেকে কানেকশন ফ্লো।

Android কাস্টম ট্যাব চালু করা

কাস্টম ট্যাব ফ্লো কাজ করার জন্য, নেটওয়ার্ক অপারেটরদের Captive Portal API প্রয়োগ করতে হবে এবং JSON কনফিগারেশনের মাধ্যমে অপ্ট-ইন করতে হবে।

প্রয়োজনীয়তা

ক্যাপটিভ পোর্টাল লগ-ইনের জন্য কাস্টম ট্যাব চালু করতে হলে নিম্নলিখিত বিষয়গুলি প্রয়োজন:

  • Android 12 বা তার পরবর্তী যেকোনও ভার্সনে চলে এমন ডিভাইস যা Mainline CaptivePortalLogin মডিউলের মাধ্যমে Google Play সিস্টেম আপডেট (Mainline দেখুন) সাপোর্ট করে।
  • ক্যাপটিভ পোর্টাল API (RFC 8908)-এর জন্য সহায়তা। বিস্তারিত জানতে, Captive Portal API-কে সহায়তা করুন দেখুন।

Android কাস্টম ট্যাবে অপ্ট-ইন করা

আপনার নেটওয়ার্কে আগে থেকেই Captive Portal API (RFC 8908) কাজ করলে, কাস্টম ট্যাব ফ্লো চালু করতে, আপনার আগে থেকে থাকা JSON রেসপন্স অবজেক্টে নিচের কী-ভ্যালু পেয়ার যোগ করুন:

কী মান বর্ণনা
x-android-use-custom-tabs 361335020 এই ভ্যালুটি জানুয়ারি ২০২৬-এ প্রকাশিত ক্যাপটিভ পোর্টাল লগ-ইন মেইনলাইন মডিউলের ভার্সন নম্বরকে বোঝায়। এই ভার্সনের সমান বা তার থেকে নতুন মডিউল আপডেট সহ ডিভাইসগুলি কাস্টম ট্যাব লগ-ইন ফ্লো ব্যবহার করে।

এই JSON অবজেক্টের উদাহরণে Android-এ কাজ করে এমন সবকটি ক্যাপটিভ পোর্টাল অ্যাট্রিবিউট অন্তর্ভুক্ত আছে:

{
  "captive": true,
  "user-portal-url": "https://login.example.com",
  "venue-info-url": "https://venue.example.com",
  "seconds-remaining": 3600,
  "x-android-use-custom-tabs": 361335020
}

JSON ক্যাপটিভ পোর্টালের উপলভ্য অ্যাট্রিবিউটগুলি নিচে উল্লেখ করা হল:

  • captive: যাচাইকরণ প্রয়োজন হলে true হিসেবে সেট করুন; ব্যবহারকারী আগে থেকেই অনলাইন থাকলে false হিসেবে সেট করুন।
  • user-portal-url: লগ-ইন বা পেমেন্ট পৃষ্ঠার URL.
  • venue-info-url: তথ্যের জন্য আপনার সাইটের লিঙ্ক (যেমন, ফ্লাইট বিবরণ বা ম্যাপ)।
  • seconds-remaining: ডিভাইসটি কতক্ষণ (সেকেন্ডে) ইন্টারনেট কানেকশন বজায় রাখতে পারবে বলে আশা করা হচ্ছে তা দেখায়।
  • x-android-use-custom-tabs: উপলভ্য হলে ডিভাইস কাস্টম ট্যাব ব্যবহার করবে কিনা তা নিয়ন্ত্রণ করে।

ক্যাপটিভ পোর্টাল API কাজ করে

আপনার নেটওয়ার্কে Captive Portal API কাজ না করলে, Captive Portal API ও কাস্টম ট্যাব ফ্লো চালু করতে এইসব ধাপ অনুসরণ করুন।

  1. DHCP বিকল্প ১১৪ যোগ করতে আপনার DHCP সার্ভার কনফিগারেশন আপডেট করুন।

    • ভ্যালু: ক্যাপটিভ পোর্টাল সংক্রান্ত তথ্য (যেমন, https://api.yourvenue.com/status) সহ ডায়নামিক-জেনারেটেড JSON ফাইলের সম্পূর্ণ HTTPS URL প্রদান করুন।

    • ফলাফল: কোনও Android ডিভাইস নেটওয়ার্কে যোগ দিলে, এটি ব্রাউজার রিডাইরেক্টের জন্য অপেক্ষা না করে প্রদান করা API-তে কোয়েরি করে।

  2. প্রদান করা URL-এ HTTP GET অনুরোধের উত্তর দেওয়ার জন্য আপনার API সার্ভার কনফিগার করুন। এই JSON ফাইলে পোর্টালের বর্তমান অবস্থা সম্পর্কে ডিভাইসকে জানানো হয়।

    • HTTPS সংক্রান্ত প্রয়োজনীয়তা: আপনার API সার্ভারে অবশ্যই সঠিক HTTPS সার্টিফিকেট থাকতে হবে।

    • নিরাপত্তা ফলব্যাক: সার্টিফিকেট অবৈধ বা সেল্ফ-সাইন করা হলে, ডিভাইসটি পুরনো ক্যাপটিভ পোর্টাল আচরণে ফিরে যায়।

Android ক্যাপটিভ পোর্টাল শনাক্তকরণ আচরণ

ক্যাপটিভ পোর্টাল API, ক্যাপটিভ পোর্টালের অস্তিত্ব শনাক্ত করার জন্য স্ট্যান্ডার্ড Android নেটওয়ার্ক প্রোবের একটি নির্ভরযোগ্য বিকল্প প্রদান করে, যা সাধারণ অসঙ্গতিগুলিকে বাইপাস করে।

নির্দিষ্ট ভ্যালিডেশন URL-এ একই সাথে HTTP ও HTTPS প্রোব পাঠিয়ে Android ডিভাইস নেটওয়ার্ক অ্যাক্সেস চেক করে। প্রোব সঠিকভাবে কাজ না করলে (যেমন, HTTP কাজ করলেও HTTPS কাজ না করলে) আংশিক কানেক্টিভিটি সংক্রান্ত সমস্যা হয়, যার ফলে লগ-ইন অ্যাপ অটোমেটিক ডিসপ্লে নাও হতে পারে।

ক্যাপটিভ পোর্টাল API, নিম্নলিখিত শনাক্তকরণ আচরণ ব্যবহার করে শনাক্তকরণকে আরও নির্ভরযোগ্য করে তোলে:

  • API "captive": true রিপোর্ট করলে, সিস্টেম বুঝতে পারে যে এটি কোনও পোর্টালের পিছনে আছে এবং লগ-ইন ইন্টারফেস অবিলম্বে দেখানোর জন্য স্ট্যান্ডার্ড প্রোব এড়িয়ে যায়।
  • API "captive": false রিপোর্ট করলে, সিস্টেম স্ট্যান্ডার্ড প্রোবের সাথে এগিয়ে যায়, সম্পূর্ণ ইন্টারনেট অ্যাক্সেস কনফার্ম করার আগে HTTP ও HTTPS প্রোব দু'টিকেই সফল হতে হয়।

মতামত

মতামত জানাতে, android-cct@google.com আইডিতে আমাদের ইমেল করুন। সকলের সুবিধার জন্য আমাদের প্রোডাক্ট ও ফিচার তৈরি ও উন্নত করতে আপনার মতামত আমরা ব্যবহার করতে পারি।