Android এ WebAPKs

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

অ্যান্ড্রয়েডে একটি PWA ইনস্টল করলে তা শুধু ব্যবহারকারীর হোম স্ক্রিনে প্রগ্রেসিভ ওয়েব অ্যাপটি যুক্ত করার চেয়েও বেশি কিছু করে। ক্রোম স্বয়ংক্রিয়ভাবে আপনার অ্যাপের একটি বিশেষ APK তৈরি ও ইনস্টল করে। আমরা কখনও কখনও এটিকে WebAPK বলে থাকি। APK-এর মাধ্যমে ইনস্টল হওয়ার ফলে আপনার অ্যাপটি অ্যাপ লঞ্চারে, অ্যান্ড্রয়েডের অ্যাপ সেটিংসে প্রদর্শিত হতে পারে এবং একগুচ্ছ ইন্টেন্ট ফিল্টার রেজিস্টার করতে পারে।

WebAPK তৈরি করার জন্য, Chrome ওয়েব অ্যাপ ম্যানিফেস্ট এবং অন্যান্য মেটাডেটা দেখে। যখন ম্যানিফেস্টে কোনো আপডেট শনাক্ত করা হয়, তখন Chrome-কে একটি নতুন APK তৈরি করতে হয়।

অ্যান্ড্রয়েড ইন্টেন্ট ফিল্টার

অ্যান্ড্রয়েডে যখন একটি প্রগ্রেসিভ ওয়েব অ্যাপ ইনস্টল করা হয়, তখন এটি অ্যাপটির আওতাধীন সমস্ত ইউআরএল-এর জন্য এক সেট ইন্টেন্ট ফিল্টার রেজিস্টার করে। যখন কোনো ব্যবহারকারী অ্যাপটির আওতাধীন কোনো লিঙ্কে ক্লিক করেন, তখন অ্যাপটি ব্রাউজার ট্যাবে না খুলে সরাসরি খুলে যায়।

নিম্নলিখিত আংশিক manifest.json বিবেচনা করুন:

"start_url": "/",
"display": "standalone",

যখন এটি ব্যবহার করা কোনো ওয়েব অ্যাপ অ্যাপ লঞ্চার থেকে চালু করা হয়, তখন এটি কোনো ব্রাউজার ক্রোম ছাড়াই https://example.com/ একটি স্বতন্ত্র অ্যাপ হিসেবে খুলবে।

WebAPK-টিতে নিম্নলিখিত ইন্টেন্ট ফিল্টারগুলো অন্তর্ভুক্ত থাকবে:

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data
    android:scheme="https"
    android:host="example.com"
    android:pathPrefix="/" />
</intent-filter>

যদি ব্যবহারকারী ইনস্টল করা কোনো অ্যাপের ভেতর থেকে https://example.com/read লিঙ্কে ক্লিক করেন, তাহলে সেটি ইন্টেন্টের মাধ্যমে শনাক্ত হয়ে প্রগ্রেসিভ ওয়েব অ্যাপে খুলে যাবে।

ইনটেন্ট ফিল্টার সীমাবদ্ধ করতে scope ব্যবহার করা

আপনি যদি না চান যে আপনার প্রগ্রেসিভ ওয়েব অ্যাপ আপনার সাইটের সমস্ত ইউআরএল পরিচালনা করুক, তাহলে আপনি আপনার ওয়েব অ্যাপ ম্যানিফেস্টে ‘ scope প্রপার্টি যোগ করতে পারেন। ‘ scope প্রপার্টি অ্যান্ড্রয়েডকে বলে দেয় যে, ইউআরএলটি ‘ origin + scope সাথে মিললেই যেন আপনার ওয়েব অ্যাপটি খোলে। এটি আপনাকে নিয়ন্ত্রণ দেয় যে কোন ইউআরএলগুলো আপনার অ্যাপ দ্বারা পরিচালিত হবে এবং কোনগুলো ব্রাউজারে খোলা হবে। এটি তখন সহায়ক হয় যখন আপনার অ্যাপ এবং অন্যান্য নন-অ্যাপ কন্টেন্ট একই ডোমেইনে থাকে।

নিম্নলিখিত আংশিক manifest.json বিবেচনা করুন:

"scope": "/app/",
"start_url": "/app/",
"display": "standalone",

অ্যাপ লঞ্চার থেকে চালু করলে, এটি https://example.com/app/ কোনো ব্রাউজার ক্রোম ছাড়াই একটি স্বতন্ত্র অ্যাপ হিসেবে খুলবে।

আগের মতোই, তৈরি হওয়া WebAPK-টিতে একটি ইন্টেন্ট ফিল্টার অন্তর্ভুক্ত থাকবে, কিন্তু APK-টির AndroidManifest.xmlandroid:pathPrefix অ্যাট্রিবিউটটি ভিন্ন হবে:

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data
    android:scheme="https"
    android:host="example.com"
    android:pathPrefix="/app/" />
</intent-filter>

চলুন কয়েকটি উদাহরণ দেখে নেওয়া যাক:

করুন

https://example.com/app/ - /app/ এর মধ্যে

করুন

https://example.com/app/read/book - /app/ এর মধ্যে

না

https://example.com/help/ - /app/ এ নেই

না

https://example.com/about/ - /app/ এ নেই

scope সম্পর্কে আরও তথ্যের জন্য, এটি সেট না করলে কী হয় এবং আপনার অ্যাপের স্কোপ নির্ধারণ করতে আপনি কীভাবে এটি ব্যবহার করতে পারেন, তা জানতে scope দেখুন।

অনুমতি ব্যবস্থাপনা

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

স্টোরেজ এবং অ্যাপের অবস্থা পরিচালনা করা

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

WebAPK আপডেট করা হচ্ছে

একটি WebAPK কীভাবে আপডেট করা হয়, সেই সম্পর্কিত তথ্য এখন "Chrome How Handles updates to the web app manifest" অংশে স্থানান্তরিত করা হয়েছে।

প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী

স্প্ল্যাশ স্ক্রিন তৈরি করতে কী কী আইকন ব্যবহার করা হয়?

আমরা আপনাকে স্প্ল্যাশ স্ক্রিনের জন্য কমপক্ষে দুটি আইকন সাইজ দেওয়ার পরামর্শ দিচ্ছি: ১৯২ পিক্সেল এবং ৫১২ পিক্সেল । আমরা আপনাদের কাছ থেকে শুনেছি যে স্প্ল্যাশ স্ক্রিনের আইকনগুলো খুব ছোট ছিল। ক্রোম ৭১ বা তার পরবর্তী সংস্করণে তৈরি করা WebAPK-গুলোতে স্প্ল্যাশ স্ক্রিনে একটি বড় আইকন দেখা যাবে। প্রস্তাবিত আইকনগুলো দেওয়া হলেই কোনো পদক্ষেপ নেওয়ার প্রয়োজন নেই।

যদি ব্যবহারকারী ইতিমধ্যেই সাইটটির নেটিভ অ্যাপ ইনস্টল করে থাকেন, তাহলে কী হবে?

আজকের ‘হোম স্ক্রিনে যোগ করুন’ ফিচারের মতোই, ব্যবহারকারীরা যেকোনো নেটিভ অ্যাপ থেকে স্বাধীনভাবে একটি সাইট যোগ করতে পারবেন। যদি আপনি আশা করেন যে ব্যবহারকারীরা উভয়ই ইনস্টল করতে পারেন, তবে আমরা আপনার সাইটের আইকন বা নামটি আপনার নেটিভ অ্যাপ থেকে আলাদা করার পরামর্শ দিই।

ব্যবহারকারী যদি ক্রোমের ক্যাশে মুছে ফেলেন, তাহলে কি আমার ইনস্টল করা সাইটের স্টোরেজ খালি হয়ে যাবে?

হ্যাঁ।

আমি নতুন ডিভাইস পেলে আমার অ্যাপটি কি পুনরায় ইনস্টল হয়ে যাবে?

এই মুহূর্তে নয়, তবে আমরা এটিকে একটি গুরুত্বপূর্ণ ক্ষেত্র বলে মনে করি এবং এটিকে কার্যকর করার উপায় খতিয়ে দেখছি।

অনুমতিগুলো কীভাবে পরিচালনা করা হয়? আমি কি ক্রোমের প্রম্পট দেখতে পাব নাকি অ্যান্ড্রয়েডের?

অনুমতিগুলো আগের মতোই ক্রোমের মাধ্যমেই পরিচালনা করা হবে। ব্যবহারকারীরা অনুমতি দেওয়ার জন্য ক্রোমের প্রম্পট দেখতে পাবেন এবং ক্রোম সেটিংসে সেগুলো সম্পাদনা করতে পারবেন।

এটি অ্যান্ড্রয়েডের কোন কোন সংস্করণে কাজ করবে?

অ্যান্ড্রয়েডের যে সকল সংস্করণে ক্রোম ব্রাউজার চলে, বিশেষ করে জেলি বিন এবং তার পরবর্তী সংস্করণগুলোতে, সেগুলোতে প্রগ্রেসিভ ওয়েব অ্যাপ ইনস্টল করা যায়।

এটি কি WebView ব্যবহার করে?

না, সাইটটি ক্রোম ব্রাউজারের সেই সংস্করণে খোলে যেখান থেকে ব্যবহারকারী সাইটটি যুক্ত করেছেন।

তৈরি করা APK গুলো কি প্লে স্টোরে আপলোড করা যাবে?

না। আপনি যদি নিজের APK আপলোড করতে চান, তাহলে Trusted Web Activities দেখুন।

এগুলো কি প্লে স্টোরে তালিকাভুক্ত আছে?

না। আপনি যদি প্লে স্টোরে তালিকাভুক্ত করার জন্য আপনার নিজের APK আপলোড করতে চান, তাহলে Trusted Web Activities দেখুন।

আমি অ্যান্ড্রয়েডের জন্য অন্য একটি ব্রাউজারের ডেভেলপার, আমি কি এই নির্বিঘ্ন ইনস্টলেশন প্রক্রিয়াটি পেতে পারি?

আমরা এটি নিয়ে কাজ করছি। আমরা অ্যান্ড্রয়েডের সকল ব্রাউজারে এটি উপলব্ধ করতে প্রতিশ্রুতিবদ্ধ এবং শীঘ্রই এ বিষয়ে আরও বিস্তারিত জানাবো।