C++ के साथ डाइनैमिक लिंक पाएं

अपने बनाए गए Firebase डाइनैमिक लिंक पाने के लिए, आपको अपने ऐप्लिकेशन में डाइनैमिक लिंक SDK टूल शामिल करना होगा. साथ ही, firebase::dynamic_links::Listener ऑब्जेक्ट बनाना होगा जो OnDynamicLinkReceived वर्चुअल फ़ंक्शन को लागू करता हो.

C++ SDK टूल, Android और iOS, दोनों पर काम करता है. हालांकि, इसके लिए हर प्लैटफ़ॉर्म के लिए कुछ अतिरिक्त सेटअप की ज़रूरत होती है.

वेब कंटेनर इंस्टॉल करने से पहले

Firebase डाइनैमिक लिंक का इस्तेमाल करने से पहले, आपको ये काम करने होंगे:

  • अपना C++ प्रोजेक्ट रजिस्टर करें और उसे Firebase का इस्तेमाल करने के लिए कॉन्फ़िगर करें.

    अगर आपके C++ प्रोजेक्ट में पहले से ही Firebase का इस्तेमाल हो रहा है, तो इसका मतलब है कि वह पहले से रजिस्टर है और Firebase के लिए कॉन्फ़िगर हो चुका है.

  • अपने C++ प्रोजेक्ट में Firebase C++ SDK टूल जोड़ें.

ध्यान दें कि Firebase को अपने C++ प्रोजेक्ट में जोड़ने पर, Firebase कंसोल और आपके खुले हुए C++ प्रोजेक्ट, दोनों के टास्क शामिल होते हैं. उदाहरण के लिए, कंसोल से Firebase कॉन्फ़िगरेशन फ़ाइलें डाउनलोड करने के बाद, उन्हें C++ प्रोजेक्ट में ले जाया जा सकता है.

कस्टम यूआरएल स्कीम जोड़ना (सिर्फ़ iOS के लिए)

Firebase डाइनैमिक लिंक C++ क्लाइंट लाइब्रेरी, लिंक प्रोसेस करने के लिए iOS पर कस्टम यूआरएल स्कीम का इस्तेमाल करती है. डाइनैमिक लिंक पाने के लिए, आपको अपने ऐप्लिकेशन में कस्टम यूआरएल स्कीम जोड़नी होंगी.

  1. अपने प्रोजेक्ट का कॉन्फ़िगरेशन खोलने के लिए, बाईं ओर मौजूद ट्री व्यू में प्रोजेक्ट के नाम पर दो बार क्लिक करें.

  2. टारगेट सेक्शन से अपना ऐप्लिकेशन चुनें. इसके बाद, जानकारी टैब चुनें. इसके बाद, यूआरएल टाइप सेक्शन को बड़ा करें.

  3. + बटन पर क्लिक करें. इसके बाद, अपने उलटे क्लाइंट आईडी के लिए यूआरएल स्कीम जोड़ें. यह वैल्यू ढूंढने के लिए:

    1. GoogleService-Info.plist कॉन्फ़िगरेशन फ़ाइल खोलें, फिर REVERSED_CLIENT_ID कुंजी खोजें.

    2. उस कुंजी की वैल्यू कॉपी करें, फिर उसे कॉन्फ़िगरेशन पेज पर यूआरएल स्कीम बॉक्स में चिपकाएं.

    3. दूसरे फ़ील्ड खाली छोड़ दें.

  4. + बटन पर क्लिक करें. इसके बाद, दूसरी यूआरएल स्कीम जोड़ें. यह आपके ऐप्लिकेशन के बंडल आईडी के जैसा ही होता है.

    उदाहरण के लिए, अगर आपका बंडल आईडी com.example.ios है, तो उस वैल्यू को यूआरएल स्कीम बॉक्स में टाइप करें.

    आपको अपने ऐप्लिकेशन का बंडल आईडी, प्रोजेक्ट कॉन्फ़िगरेशन के सामान्य टैब (Identity > बंडल आइडेंटिफ़ायर) में मिल जाएगा.

डाइनैमिक लिंक मिल रहा है

ऐप्लिकेशन बनाएं और उसे शुरू करें

डाइनैमिक लिंक मिले हैं या नहीं, यह देखने से पहले आपको firebase::App ऑब्जेक्ट बनाना होगा और उसे शुरू करना होगा.

firebase::App के लिए हेडर फ़ाइल शामिल करें:

#include "firebase/app.h"

अगला हिस्सा आपके प्लैटफ़ॉर्म के हिसाब से अलग-अलग होता है:

Android

आर्ग्युमेंट के तौर पर, JNI एनवायरमेंट और Java ऐक्टिविटी के लिए jobject रेफ़रंस को पास करते हुए, firebase::App बनाएं:

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);

iOS

firebase::App बनाएं:

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));

डाइनैमिक लिंक की जांच के लिए, लिसनर को लागू करें

आपको मिले डाइनैमिक लिंक की जांच करने के लिए, firebase::dynamic_links::Listener क्लास को लागू करें और उसका इस्तेमाल करें.

डाइनैमिक लिंक पाने के लिए, यह हेडर फ़ाइल शामिल करें:

#include "firebase/dynamic_links.h"

डाइनैमिक लिंक लाइब्रेरी को शुरू करें:

::firebase::dynamic_links::Initialize(app, null);

एक ऐसा ऑब्जेक्ट बनाएं जो firebase::dynamic_links::Listener को लागू करता हो और उसे SetListener() की मदद से डाइनैमिक लिंक लाइब्रेरी में उपलब्ध कराएं या प्रोसेस शुरू करने के लिए, इसे दूसरे आर्ग्युमेंट के तौर पर पास करें.

डाइनैमिक लिंक पाने के लिए, आपकी लिसनर क्लास को OnDynamicLinkReceived वर्चुअल फ़ंक्शन लागू करना होगा. अगर आपको कोई डीप लिंक मिलता है, तो इस तरीके को ओवरराइड करने पर ऐसा हो सकता है.

class Listener : public firebase::dynamic_links::Listener {
 public:
  // Called on the client when a dynamic link arrives.
  void OnDynamicLinkReceived(
      const firebase::dynamic_links::DynamicLink* dynamic_link) override {
    printf("Received link: %s", dynamic_link->url.c_str());
  }
};