ইনস্টল করা ওয়েব অ্যাপ (PWA) নতুন অরিজিনে ট্রান্সফার করার জন্য সাধারণত ব্যবহারকারীকে ম্যানুয়ালি পুরনো অ্যাপ আনইনস্টল করে নতুন অ্যাপ ইনস্টল করতে হয়। এই প্রসেসের ফলে সাধারণত OS-লেভেল ইন্টিগ্রেশন হারিয়ে যায়, যেমন টাস্কবার শর্টকাট এবং বিজ্ঞপ্তির অনুমতি। ওয়েব অ্যাপ অরিজিন মাইগ্রেশন পুরনো ও নতুন অরিজিনের মধ্যে সুরক্ষিত হ্যান্ডওভার প্রতিষ্ঠা করে এই ট্রানজিশন অটোমেট করে।
মাইগ্রেশন হল দুই-ধাপের যাচাইকরণ প্রক্রিয়া: নতুন সাইটটি পুরনো সাইটটিকে তার পূর্বসূরি হিসেবে দাবি করে এবং পুরনো সাইটটি নতুন সাইটটিকে তার উত্তরসূরি হিসেবে অনুমোদন করে।
গুরুত্বপূর্ণ বাধ্যবাধকতা
প্রয়োগ করার বিভিন্ন ধাপ
১. "Same-Site" স্ট্যাটাস যাচাইকরণ
বাধ্যতামূলক: নতুন ও পুরনো, উভয় অরিজিনকেই "একই-সাইট" হতে হবে। সেগুলিকে একই রেজিস্টার করা যায় এমন ডোমেন (eTLD+1) শেয়ার করতে হবে।
- অনুমতি দেওয়া হয়েছে:
app.example.comথেকেnew.example.com-এ মাইগ্রেট করা হচ্ছে (উভয়ইexample.comশেয়ার করে)। - অনুমতি দেওয়া হয়েছে:
example.com/app1থেকেexample.com/app2-এ মাইগ্রেট করা হচ্ছে। - নিষিদ্ধ:
example.comথেকেexample.org-এ মাইগ্রেট করা (আলাদা রেজিস্টার করা যায় এমন ডোমেন)।
২. নতুন অ্যাপ্লিকেশন কনফিগার করুন
নতুন অ্যাপ্লিকেশনে তার পূর্বসূরির নাম উল্লেখ করতে হবে। নতুন অ্যাপে অবশ্যই id থাকতে হবে।
নতুন সাইটের manifest.json-এ, migrate_from ফিল্ড যোগ করুন:
{
"name": "My New App",
"id": "/demo.html",
"start_url": "/demo.html",
"migrate_from": [
{
"id": "https://old-app.example.com/"
}
]
}
৩. পুরনো অরিজিনে মাইগ্রেশন অনুমোদন করুন
অরিজিন হাইজ্যাকিং আটকাতে পুরনো অরিজিনকে অবশ্যই মাইগ্রেশন স্পষ্টভাবে অনুমোদন করতে হবে। .well-known ডিরেক্টরি থেকে পরিবেশিত একটি কনফিগারেশন ফাইল তৈরি করুন।
ফাইলের লোকেশন: https://old-app.example.com/.well-known/web-app-origin-association
{
"https://new-app.example.com": {
"allow_migration": true
}
}
৪. মাইগ্রেশন সম্পর্কে আগাম সিগন্যাল দিন (ঐচ্ছিক)
পুরনো ব্যবহারকারীদের নতুন সাইটে ভিজিট করার জন্য অপেক্ষা না করে, অবিলম্বে মাইগ্রেশন ট্রিগার করতে, migrate_to হিন্ট সহ পুরনো সাইটের ম্যানিফেস্ট আপডেট করুন।
{
"migrate_to": [
{
"id": "https://new-app.example.com/",
"install_url": "https://new-app.example.com/demo.html"
}
]
}
৫. ব্যবহারকারীদের মাইগ্রেট করতে হবে (ঐচ্ছিক)
ডিফল্ট হিসেবে, ব্যবহারকারীদের মাইগ্রেশন করার সাজেশন দেওয়া হয়। ট্রানজিশন বাধ্যতামূলক করতে, নতুন অ্যাপের ম্যানিফেস্টে behavior-কে force-এ সেট করুন।
{
"migrate_from": [
{
"id": "https://old-app.example.com/",
"behavior": "force"
}
]
}
মনে রাখবেন: behavior: "force" পুরনো অ্যাপটি নীরবে মুছে দেয় না। ব্রাউজার ব্যবহারকারীকে একটি ডায়ালগ দেখাবে যাতে তাকে নতুন ভার্সনে আপডেট করতে হবে অথবা অ্যাপটি সম্পূর্ণভাবে সরিয়ে দিতে হবে।
ফলব্যাক ও ব্রাউজার সাপোর্ট
ম্যানুয়ালি আবার ইনস্টল করার প্রম্পট
যেসব ব্রাউজারে অটোমেটিক মাইগ্রেশন কাজ করে না, সেখানে ব্যবহারকারী পুরনো ইনস্টলেশনই ব্যবহার করতে থাকবেন। পুরনো অরিজিনে আপনাকে একটি UI এলিমেন্ট (যেমন, বিজ্ঞপ্তি ব্যানার) প্রয়োগ করতে হবে যা ব্যবহারকারীকে নতুন সাইটে নিয়ে যাবে।
ব্যবহারকারীর সেটিংস মাইগ্রেট করা হবে না এবং পুরনো অ্যাপ অটোমেটিক আনইনস্টল করা হবে না।