একটি Flutter অ্যাপে Firebase ডায়নামিক লিঙ্কগুলি পান৷

আপনার তৈরি করা Firebase ডায়নামিক লিঙ্কগুলি পেতে, আপনাকে অবশ্যই আপনার অ্যাপে ডায়নামিক লিঙ্ক SDK অন্তর্ভুক্ত করতে হবে এবং যখন আপনার অ্যাপ লোড হয় তখন ডায়নামিক লিঙ্কে ডেটা পাস করার জন্য FirebaseDynamicLinks.getDynamicLink() পদ্ধতিতে কল করতে হবে।

  1. আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে ফ্লটারের জন্য Firebase SDK ইনস্টল করুন এবং শুরু করুন

  2. আপনার ফ্লাটার প্রকল্পের রুট ডিরেক্টরি থেকে, ডায়নামিক লিঙ্ক প্লাগইন ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:

    flutter pub add firebase_dynamic_links
    
  3. আপনি যদি একটি Android অ্যাপ তৈরি করেন, তাহলে Firebase কনসোলের প্রকল্প সেটিংস পৃষ্ঠাটি খুলুন এবং নিশ্চিত করুন যে আপনি আপনার SHA-1 সাইনিং কী নির্দিষ্ট করেছেন৷ আপনি যদি অ্যাপ লিঙ্কগুলি ব্যবহার করেন তবে আপনার SHA-256 কীও নির্দিষ্ট করুন৷

প্ল্যাটফর্ম ইন্টিগ্রেশন

আপনি যে প্ল্যাটফর্মগুলির জন্য আপনার অ্যাপ তৈরি করছেন তার জন্য নিম্নলিখিত প্ল্যাটফর্ম ইন্টিগ্রেশন পদক্ষেপগুলি সম্পূর্ণ করুন৷

অ্যান্ড্রয়েড

অ্যান্ড্রয়েডে, আপনাকে অবশ্যই আপনার ডোমেনের একটি নতুন অভিপ্রায় ফিল্টার ক্যাচ ডিপ লিঙ্ক যুক্ত করতে হবে, যেহেতু আপনার অ্যাপ ইনস্টল করা থাকলে ডায়নামিক লিঙ্কটি আপনার ডোমেনে পুনঃনির্দেশ করবে৷ আপনার অ্যাপটি প্লে স্টোর থেকে ইনস্টল/আপডেট হওয়ার পরে এবং চালিয়ে যাওয়া বোতামে একটি ট্যাপ করার পরে ডায়নামিক লিঙ্ক ডেটা পাওয়ার জন্য এটি প্রয়োজনীয়। AndroidManifest.xml এ:

<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:host="example.com"
        android:scheme="https"/>
</intent-filter>

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

পরবর্তী ধাপ হল অ্যাপটির জন্য Firebase কনসোলে স্বাক্ষরকারী শংসাপত্রের SHA-256 আঙ্গুলের ছাপ নিবন্ধিত করা নিশ্চিত করা। আপনার ক্লায়েন্ট প্রমাণীকরণ পৃষ্ঠায় আপনি কীভাবে আপনার SHA-256 আঙ্গুলের ছাপ পুনরুদ্ধার করবেন সে সম্পর্কে আরও বিশদ জানতে পারেন।

অ্যাপল প্ল্যাটফর্ম

  1. আপনার যদি ইতিমধ্যে একটি না থাকে তবে একটি Apple বিকাশকারী অ্যাকাউন্ট তৈরি করুন

  2. Firebase কনসোলের প্রজেক্ট সেটিংস পৃষ্ঠায়, নিশ্চিত করুন যে আপনার iOS অ্যাপটি আপনার অ্যাপ স্টোর আইডি এবং টিম আইডির সাথে সঠিকভাবে কনফিগার করা আছে।

  3. অ্যাপল ডেভেলপার সাইটে, অ্যাসোসিয়েটেড ডোমেন সক্ষমতা সক্ষম করে আপনার অ্যাপের জন্য একটি প্রভিশনিং প্রোফাইল তৈরি করুন।

  4. এক্সকোডে, নিম্নলিখিতগুলি করুন:

    1. TARGETS হেডারের অধীনে আপনার অ্যাপ খুলুন।

    2. স্বাক্ষর ও সক্ষমতা পৃষ্ঠায়, নিশ্চিত করুন যে আপনার দল নিবন্ধিত হয়েছে, এবং আপনার প্রভিশনিং প্রোফাইল সেট করা আছে।

    3. সাইনিং এবং ক্যাপাবিলিটি পৃষ্ঠায়, অ্যাসোসিয়েটেড ডোমেনগুলি সক্ষম করুন এবং অ্যাসোসিয়েটেড ডোমেন তালিকায় নিম্নলিখিতগুলি যোগ করুন (আপনার ডোমেনের সাথে উদাহরণ প্রতিস্থাপন করুন):

      applinks:example.page.link
      
    4. তথ্য পৃষ্ঠায়, আপনার প্রকল্পে একটি URL টাইপ যোগ করুন। আপনার অ্যাপের বান্ডেল আইডিতে URL স্কিম ক্ষেত্র সেট করুন। (শনাক্তকারী Bundle ID বা আপনি যা চান তা হতে পারে।)

    5. আপনি যদি আপনার Firebase প্রকল্পের জন্য একটি কাস্টম ডোমেন সেট আপ করে থাকেন, তাহলে FirebaseDynamicLinksCustomDomains কী ব্যবহার করে আপনার iOS প্রকল্পের Info.plist ফাইলে ডায়নামিক লিঙ্ক URL প্রিফিক্স যোগ করুন।

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
      <plist version="1.0">
      <dict>
      <key>FirebaseDynamicLinksCustomDomains</key>
      <array>
          <string>https://custom.domain.io/path1</string>
          <string>https://custom.domain.io/path2</string>
      </array>
      
      ...other settings
      
      </dict>
      </plist>
      
    6. ঐচ্ছিক: ডায়নামিক লিঙ্ক SDK-এর iOS পেস্টবোর্ডের ব্যবহার অক্ষম করুন।

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

      এর নেতিবাচক দিক হল যে পেস্টবোর্ড ব্যবহার iOS 14 এবং পরবর্তীতে একটি বিজ্ঞপ্তি ট্রিগার করে। সুতরাং, প্রথমবার ব্যবহারকারীরা আপনার অ্যাপটি খুললে, পেস্টবোর্ডে একটি ডায়নামিক লিঙ্ক URL থাকলে, তারা একটি বিজ্ঞপ্তি দেখতে পাবে যে আপনার অ্যাপটি পেস্টবোর্ড অ্যাক্সেস করেছে, যা বিভ্রান্তির কারণ হতে পারে।

      এই আচরণটি নিষ্ক্রিয় করতে, আপনার Xcode প্রকল্পের Info.plist ফাইলটি সম্পাদনা করুন এবং FirebaseDeepLinkPasteboardRetrievalEnabled কীটি NO তে সেট করুন।

আপনার অ্যাপ্লিকেশনে একটি ডায়নামিক লিঙ্ক পরিচালনা করতে, দুটি পরিস্থিতিতে বাস্তবায়ন প্রয়োজন।

সমাপ্ত রাজ্য

নিম্নলিখিত পদ্ধতি সেট আপ করুন:

  1. FirebaseDynamicLinks.getInitialLink - একটি Future<PendingDynamicLinkData?>
  2. FirebaseDynamicLinks.onLink - ইভেন্ট হ্যান্ডলার যে একটি মুলতুবি ডাইনামিকলিঙ্কডেটা ধারণকারী একটি Stream ফেরত দেয় PendingDynamicLinkData?

অ্যান্ড্রয়েড সর্বদা FirebaseDynamicLinks.getInitialLink এর মাধ্যমে একটি সমাপ্ত অবস্থা থেকে লিঙ্কটি পাবে, কিন্তু iOS-এ এটি নিশ্চিত নয়। অতএব, আপনার আবেদনটি লিঙ্কটি পেয়েছে তা নিশ্চিত করতে নিম্নলিখিত ক্রমে সেগুলিকে সেট আপ করা মূল্যবান:

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseConfig.platformOptions);

  // Check if you received the link via `getInitialLink` first
  final PendingDynamicLinkData? initialLink = await FirebaseDynamicLinks.instance.getInitialLink();

  if (initialLink != null) {
    final Uri deepLink = initialLink.link;
    // Example of using the dynamic link to push the user to a different screen
    Navigator.pushNamed(context, deepLink.path);
  }

  FirebaseDynamicLinks.instance.onLink.listen(
        (pendingDynamicLinkData) {
          // Set up the `onLink` event listener next as it may be received here
          if (pendingDynamicLinkData != null) {
            final Uri deepLink = pendingDynamicLinkData.link;
            // Example of using the dynamic link to push the user to a different screen
            Navigator.pushNamed(context, deepLink.path);
          }
        },
      );

  runApp(MyApp(initialLink));
}

আপনার অ্যাপ্লিকেশন লজিকের মধ্যে, আপনি তারপরে একটি লিঙ্ক পরিচালনা করা হয়েছে কিনা তা পরীক্ষা করতে পারেন এবং একটি ক্রিয়া সম্পাদন করতে পারেন, উদাহরণস্বরূপ:

if (initialLink != null) {
  final Uri deepLink = initialLink.link;
  // Example of using the dynamic link to push the user to a different screen
  Navigator.pushNamed(context, deepLink.path);
}

ব্যাকগ্রাউন্ড/ফোরগ্রাউন্ড স্টেট

অ্যাপ্লিকেশন খোলা থাকা অবস্থায়, বা পটভূমিতে, FirebaseDynamicLinks.onLink গেটার ব্যবহার করুন:

FirebaseDynamicLinks.instance.onLink.listen((dynamicLinkData) {
  Navigator.pushNamed(context, dynamicLinkData.link.path);
}).onError((error) {
  // Handle errors
});

বিকল্পভাবে, আপনি যদি শনাক্ত করতে চান যে অ্যাপ্লিকেশনটি খোলার জন্য একটি সঠিক ডায়নামিক লিঙ্ক ব্যবহার করা হয়েছে, তবে পরিবর্তে এটি getDynamicLink পদ্ধতিতে পাস করুন:

String link = 'https://dynamic-link-domain/ke2Qa';

final PendingDynamicLinkData? initialLink = await FirebaseDynamicLinks.instance.getDynamicLink(Uri.parse(link));

iOS এ একটি ডায়নামিক লিঙ্ক পরীক্ষা করার জন্য, আপনাকে একটি প্রকৃত ডিভাইস ব্যবহার করতে হবে। আপনাকে রিলিজ মোডে অ্যাপটি চালাতে হবে (অর্থাৎ flutter run --release .), যদি একটি বন্ধ হয়ে যাওয়া (অর্থাৎ অ্যাপটি বন্ধ করা হয়েছে।) অ্যাপ অবস্থা থেকে একটি গতিশীল লিঙ্ক পরীক্ষা করা হয়।