डाइनैमिक लिंक से ऐप्लिकेशन लिंक और यूनिवर्सल लिंक पर माइग्रेट करना

माइग्रेशन गाइड में ऐप्लिकेशन के लिंक और यूनिवर्सल लिंक के इस्तेमाल पर फ़ोकस किया गया है. इसके अलावा, अपनी ऐप्लिकेशन साइट से जुड़ी फ़ाइलों को होस्ट करने के लिए, Firebase होस्टिंग का इस्तेमाल किया जा सकता है.

इस माइग्रेशन में, Firebase डाइनैमिक लिंक की इन सुविधाओं को बदल दिया गया है:

सुविधा Firebase डाइनैमिक लिंक ऐप्लिकेशन लिंक / यूनिवर्सल लिंक
उपयोगकर्ताओं को एक ही लिंक पर क्लिक करके, उनके डिवाइस के लिए सही स्टोर पर ले जाना
उपयोगकर्ताओं को डीफ़र्ड डीप लिंक का इस्तेमाल करके, ऐप्लिकेशन डाउनलोड करने और इंस्टॉल करने के बाद भी, ऐप्लिकेशन इस्तेमाल करने की सुविधा दें
अपने ऐप्लिकेशन में डीप लिंक किए गए कॉन्टेंट का इस्तेमाल करके, उपयोगकर्ताओं को काम के हिसाब से अनुभव दें (अगर ऐप्लिकेशन पहले से इंस्टॉल है)
डाइनैमिक लिंक क्लिक इवेंट से जुड़ा आंकड़ों का डेटा उपलब्ध कराना
शॉर्ट लिंक यूआरएल बनाने की सुविधा देना

अगर आपको माइग्रेशन के लिए Firebase डाइनैमिक लिंक की ऐसी अन्य सुविधाओं की ज़रूरत है जिनका इस्तेमाल इस गाइड में नहीं किया जा सकता, तो डाइनैमिक लिंक को बंद करने से जुड़े अक्सर पूछे जाने वाले सवाल वाले दस्तावेज़ में, माइग्रेशन से जुड़े अन्य मामले देखें.

मान लें कि आपके पास ऐसा Firebase डाइनैमिक लिंक है जो इस तरह दिखता है:

डाइनैमिक लिंक का उदाहरण
लिंक का नाम Example.com पर आपका स्वागत है
डीप लिंक https://example.web.app/welcome
Android ऐप्लिकेशन com.example.android
Apple ऐप्लिकेशन com.example.ios
लंबा डाइनैमिक लिंक https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos
शॉर्ट डाइनैमिक लिंक https://example.page.link/m9Mm

माइग्रेशन की इस गाइड का मकसद, Firebase डाइनैमिक लिंक को इस तरह बदलना है:

https://example.page.link/m9Mm

ऐप्लिकेशन लिंक / यूनिवर्सल लिंक के डीप लिंक के साथ, जो इस तरह दिखते हैं:

https://your-project-domain.web.app/welcome

ध्यान दें कि ऐप्लिकेशन के लिंक / यूनिवर्सल लिंक के डीप लिंक से, आपके उपयोगकर्ताओं को ये सुविधाएं मिलेंगी:

  • एक ऐसा डीप लिंक जिस पर वे क्लिक कर सकते हैं. इससे आपका ऐप्लिकेशन पहले से इंस्टॉल होने पर खुल जाएगा
  • ऐप्लिकेशन के खुलने पर, उपयोगकर्ता उसके ऐप्लिकेशन के किसी खास हिस्से पर उस जगह पर जाते हुए, जहां उपयोगकर्ता उसे ले जाते हैं

हालांकि, ऐप्लिकेशन के लिंक / यूनिवर्सल लिंक के डीप लिंक से, आपके उपयोगकर्ताओं को ये व्यवहार नहीं मिलेंगे (जो पहले Firebase डाइनैमिक लिंक से मिलते थे):

  • उपयोगकर्ताओं को उनके डिवाइस के लिए सही स्टोर पर ले जाना, ताकि वे आपका ऐप्लिकेशन डाउनलोड और इंस्टॉल कर सकें
  • ऐप्लिकेशन डाउनलोड करने, इंस्टॉल करने, और उसे पहली बार खोलने के बाद, उन्हें उपयोगकर्ता की गतिविधियों को जारी रखना

ऊपर दी गई टेबल में बताए गए Firebase डाइनैमिक लिंक की तुलना में, इन ऐप्लिकेशन लिंक / यूनिवर्सल लिंक के व्यवहार और फ़ंक्शन में अंतर पर ध्यान दें.

शुरू करने से पहले

Firebase डाइनैमिक लिंक, अपने काम करने के तरीके में ऐप्लिकेशन लिंक (Android पर) और यूनिवर्सल लिंक (iOS पर) का इस्तेमाल करता है. ऐसा इसलिए किया जाता है, ताकि आपका ऐप्लिकेशन इंस्टॉल होने के बाद, डीप लिंक करने की सुविधा दी जा सके.

इस गाइड में, Firebase होस्टिंग का इस्तेमाल करके अपने ऐप्लिकेशन लिंक और यूनिवर्सल लिंक बनाने का तरीका बताया गया है. इससे, Firebase डाइनैमिक लिंक की सुविधाओं को बदला जा सकता है. साथ ही, Firebase डाइनैमिक लिंक को नए ऐप्लिकेशन लिंक / यूनिवर्सल लिंक माइग्रेशन सलूशन पर माइग्रेट किया जा सकता है.

अपना माइग्रेशन पूरा करने के लिए आपको नीचे दी गई जानकारी की ज़रूरत होगी:

  • वे Firebase डाइनैमिक लिंक जिन्हें माइग्रेट करना है
  • आपके डाइनैमिक लिंक में शामिल डीप-लिंक यूआरएल पैरामीटर
  • वह डोमेन जिसका इस्तेमाल, अपने पिछले Firebase डाइनैमिक लिंक डोमेन (अगर लागू हो) को बदलने के लिए करना है

अपने मौजूदा लिंक का मेटाडेटा एक्सपोर्ट करने और ऊपर दी गई जानकारी पाने के लिए, डाइनैमिक लिंक का मेटाडेटा एक्सपोर्ट करने की गाइड का इस्तेमाल करें.

माइग्रेशन के चरणों के बारे में खास जानकारी

  1. Firebase होस्टिंग का इस्तेमाल करके, अपने ऐप्लिकेशन लिंक या यूनिवर्सल लिंक की कॉन्फ़िगरेशन फ़ाइलों को होस्ट करने के लिए, एक नया डोमेन (अगर आपके पास पहले से वह डोमेन नहीं है, जिसे आपको इस्तेमाल करना है) का प्रावधान करें.

  2. अपने होस्टिंग डोमेन पर, ऐप्लिकेशन लिंक / यूनिवर्सल लिंक कॉन्फ़िगरेशन फ़ाइलें बनाएं और होस्ट करें.

  3. अपने Firebase डाइनैमिक लिंक में इस्तेमाल किए गए डीप-लिंक स्कीमा से मैच करने वाले नए ऐप्लिकेशन लिंक / यूनिवर्सल लिंक बनाएं.

  4. डीप-लिंक पाने के लिए, अपना Android / iOS ऐप्लिकेशन और ऐप्लिकेशन कोड अपडेट करें.

  5. अपने ऐप्लिकेशन लिंक / यूनिवर्सल लिंक इंटिग्रेशन की जांच करना.

  6. पब्लिश किए गए या शेयर किए गए Firebase डाइनैमिक लिंक को ऐप्लिकेशन लिंक और यूनिवर्सल लिंक से बदलें.

ऐप्लिकेशन लिंक या यूनिवर्सल लिंक, दोनों के माइग्रेशन फ़्लो के लिए पहला चरण एक जैसा होगा. बाकी बचे समय की जानकारी, प्लैटफ़ॉर्म के हिसाब से अलग-अलग होगी. इसलिए, जिस प्लैटफ़ॉर्म को पहले माइग्रेट करना है उसके हिसाब से, गाइड के नीचे दिए गए सेक्शन पर जाएं.

कोई डोमेन चुनना

पहला चरण, वह डोमेन चुनना है जिसका इस्तेमाल आपको अपने ऐप्लिकेशन लिंक / यूनिवर्सल लिंक के लिए करना है. इस डोमेन का इस्तेमाल, उन नए लिंक के लिए किया जाएगा जिन्हें आप अपने उपयोगकर्ताओं के साथ शेयर करेंगे.

Firebase होस्टिंग का इस्तेमाल करने पर, your-project-domain.web.app या your-project-domain.firebaseapp.com फ़ॉर्मैट वाले प्रोजेक्ट सबडोमेन, बिना किसी शुल्क के अपने-आप प्रोवाइड हो जाते हैं. आपके पास, ऐप्लिकेशन लिंक / यूनिवर्सल लिंक की कॉन्फ़िगरेशन फ़ाइलों को होस्ट करने के लिए, Firebase होस्टिंग के साथ या उसके बिना कस्टम डोमेन का इस्तेमाल करने का विकल्प होता है.

Firebase होस्टिंग सेट अप करना

इसके बाद, आपको अपना Firebase होस्टिंग इंस्टेंस सेट अप और कॉन्फ़िगर करना होगा.

Firebase होस्टिंग इंस्टेंस सेट अप करने के बाद, आपके पास your-project-domain.web.app` जैसा डोमेन होगा. अगर आप चाहें, तो आपके पास कस्टम डोमेन भी हो सकता है.

ऐप्लिकेशन लिंक का इस्तेमाल करने के लिए, आपको एक कॉन्फ़िगरेशन फ़ाइल होस्ट करनी होगी. इससे, आपके लिंक में इस्तेमाल किए गए डोमेन और आपके ऐप्लिकेशन के बीच सुरक्षित असोसिएशन बनाने में मदद मिलती है. ऐप्लिकेशन लिंक के लिए, यह assetlinks.json फ़ाइल होती है.

assetlinks.json फ़ाइल बनाने और होस्ट करने का तरीका

assetlinks.json फ़ाइल से हमें ऐसे ऐप्लिकेशन की सूची देने की अनुमति मिलती है जो ऐप्लिकेशन लिंक के लिए इस्तेमाल किए जाने वाले वेब डोमेन के कॉन्टेंट को मैनेज कर सकते हैं. assetlinks.json फ़ाइल को, /.well-known पाथ के नीचे वेब डोमेन के रूट में होस्ट किया जाना चाहिए.

यह कॉन्फ़िगरेशन पूरा करने के लिए, नीचे दिया गया तरीका अपनाएं:

  1. अपनी Firebase होस्टिंग रूट डायरेक्ट्री के सार्वजनिक फ़ोल्डर में .well-known फ़ोल्डर बनाएं.

  2. .well-known फ़ोल्डर में, assetlinks.json नाम की फ़ाइल बनाएं.

  3. नीचे दिए गए कॉन्टेंट को अपनी assetlinks.json फ़ाइल में कॉपी करें. साथ ही, यहां दिए गए हर फ़ील्ड का मतलब ध्यान में रखें:

    [{
      "relation": ["delegate_permission/common.handle_all_urls"],
      "target": {
        "namespace": "android_app",
        "package_name": "com.example.android",
        "sha256_cert_fingerprints":
          ["01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF"]
      }
    }]
    
    • namespace - उस ऐप्लिकेशन का नाम बताता है जिसे आपको उपलब्ध कराना है
    • package_name - से ऐप्लिकेशन की build.gradle फ़ाइल में बताए गए appId का पता चलता है
    • sha256_cert_fingerprints - इस पैरामीटर में, उस पासकोड फ़ाइल का SHA256 फ़िंगरप्रिंट होता है जिसका इस्तेमाल ऐप्लिकेशन को साइन करने के लिए किया जाता है.

    डीबग करने के लिए, sha256_cert_fingerprints रिकॉर्ड जनरेट किया जा सकता है. इसके लिए, Android Studio में इस्तेमाल की गई डीबग.keystore फ़ाइल का इस्तेमाल किया जा सकता है. फ़ाइल को Mac और Linux पर /Users/<username>/.android/debug.keystore पर और Windows पर C:\Users\<username>\.android\debug.keystore पर देखा जा सकता है.

    इस पासकोड से, keytool का इस्तेमाल करके SHA256 वैल्यू फ़ेच की जा सकती है.

    इस चरण को पूरा करने के बारे में ज़्यादा निर्देशों के लिए, ऐप्लिकेशन के लिंक के दस्तावेज़ का यह सेक्शन देखें.

    इसके अलावा, assetlinks.json फ़ाइल का कॉन्टेंट जनरेट करने और ऐप्लिकेशन लिंक को मैनेज करने के लिए, Android Studio में ऐप्लिकेशन लिंक असिस्टेंट का भी इस्तेमाल किया जा सकता है.

  4. होस्टिंग के लिए फ़ाइल को इंडेक्स करने के लिए, अपनी firebase.json फ़ाइल को अपडेट करें.

    "headers": [
      {
        "source": "/.well-known/assetlinks.json",
        "headers": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ]
      }
    ]
    
  5. अब हमने assetlinks.json की फ़ाइल तैयार कर ली है. इसलिए, बदलावों को होस्ट करने के लिए, firebase deploy को चलाएं.

    ध्यान दें कि ऊपर दिया गया डिप्लॉय कमांड चलाने के लिए, आपके पास Firebase CLI इंस्टॉल होना चाहिए.

    firebase deploy --only hosting
    
  6. assetlinks.json फ़ाइल की पुष्टि करने के लिए, यहां जाएं https://your-project-domain.web.app/.well-known/assetlinks.json

इस चरण में, ऐप्लिकेशन लिंक के लिए बनाए गए नए डोमेन से मैच करने वाले सामान्य डीप लिंक यूआरएल का इस्तेमाल करके, Firebase डाइनैमिक लिंक से डीप-लिंक फिर से बनाए जाएंगे.

उदाहरण के लिए, मान लें कि आपके पास यह Firebase डाइनैमिक लिंक है:

डाइनैमिक लिंक का उदाहरण
लिंक का नाम Example.com पर आपका स्वागत है
डीप लिंक https://example.web.app/welcome
Android ऐप्लिकेशन com.example.android
Apple ऐप्लिकेशन com.example.ios
लंबा डाइनैमिक लिंक https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos
शॉर्ट डाइनैमिक लिंक https://example.page.link/m9Mm

इस मामले में, आपको डीप लिंक पैरामीटर निकालना होगा - जैसे कि https://example.web.app/welcome. इसके बाद, इसका इस्तेमाल अपने ऐप्लिकेशन के लिए ऐप्लिकेशन लिंक पैरामीटर के तौर पर किया जाएगा.

आपको इस प्रोसेस को हर उस Firebase डाइनैमिक लिंक के लिए दोहराना होगा जिसे आपको ऐप्लिकेशन लिंक / यूनिवर्सल लिंक का इस्तेमाल करके माइग्रेट करना है. साथ ही, आपको इस्तेमाल किए गए डीप लिंकिंग स्कीम को दोहराना होगा.

उदाहरण के लिए, कृपया Firebase डाइनैमिक लिंक के शॉर्ट लिंक, डीप लिंक पैरामीटर, और माइग्रेट किए गए डीप लिंक की वैल्यू का यह सेट देखें:

शॉर्ट लिंक डीप लिंक पैरामीटर माइग्रेट किया गया डीप लिंक
yourapp.page.link/welcome https://example.com/welcome yourapp.web.app/welcome
yourapp.page.link/c7sn https://example.com/main/?p=23&t=1 yourapp.web.app/main/?p=23&t=1
yourapp.page.link/social https://example.com/friendinvite/?add=1 yourapp.web.app/friendinvite/?add=1

इसके बाद, आपको Firebase डाइनैमिक लिंक के उन सभी इंस्टेंस को बदलना होगा जिन्हें पब्लिश किया गया है या शेयर किया गया है. इसके लिए, माइग्रेट किए गए नए डीप लिंक का इस्तेमाल करें, ताकि उपयोगकर्ता पिछले Firebase डाइनैमिक लिंक के बजाय उन ऐप्लिकेशन लिंक पर क्लिक करें.

डोमेन चुनने, डीप लिंकिंग स्कीमा चुनने, और Firebase डाइनैमिक लिंक को ऐप्लिकेशन लिंक में माइग्रेट करने के बाद, आपको अपने Android ऐप्लिकेशन और ऐप्लिकेशन कोड को अपडेट करना होगा, ताकि आपको नए डीप लिंक मिल सकें.

हमारा सुझाव है कि आप ऐप्लिकेशन लिंक के दस्तावेज़ यहां दिए गए हों या डीप लिंक मैनेज करने के लिए, अपने ऐप्लिकेशन को कॉन्फ़िगर करने के लिए, Android Studio की गाइड में दिए गए निर्देशों का पालन करें. हालांकि, यहां दिया गया मुख्य तरीका यहां दिया गया है:

  1. यह पता लगाना कि किन गतिविधियों को डीप लिंक मैनेज करने चाहिए
  2. अपनी AndroidManifest.xml फ़ाइल में उन गतिविधियों के लिए इंटेंट फ़िल्टर जोड़ना
  3. अपनी गतिविधियों के ऐप्लिकेशन कोड में डीप लिंक पाना

मान लें कि आपको अपने कुछ डीप लिंक को मैनेज करने के लिए, अपनी MainActivity का इस्तेमाल करना है. ऐसा करने के लिए, आपको अपनी AndroidManifest.xml फ़ाइल में, MainActivity में यह इंटेंट फ़िल्टर जोड़ना होगा:

<activity android:name=".MainActivity"
   android:exported="true">
   <intent-filter>
       <action android:name="android.intent.action.MAIN" />
       <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
   <intent-filter android:autoVerify="true">
       <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.web.app" android:scheme="http"
           android:pathPrefix="/welcome" />
       <data android:host="example.web.app" android:scheme="https"
           android:pathPrefix="/welcome" />
   </intent-filter>
</activity>

इस चरण में यह बताया जाता है कि MainActivity, wxaumble.web.app डोमेन के डीप लिंक को मैनेज करने के लिए डेस्टिनेशन है. साथ ही, इसमें /welcome पाथ प्रीफ़िक्स भी शामिल है. ध्यान दें कि आपको android:autoVerify="true" एट्रिब्यूट की जानकारी भी देनी होगी. इससे, आपको इस तरह के लिंक के लिए अपने ऐप्लिकेशन को डिफ़ॉल्ट हैंडलर के तौर पर सेट करने की अनुमति मिलती है.

आखिर में, आपको अपनी MainActivity में कोड जोड़ना होगा, ताकि डीप-लिंक डेटा को वापस पाया जा सके. साथ ही, इसका इस्तेमाल करके अपने ऐप्लिकेशन में डीप लिंक की सुविधा को बेहतर बनाया जा सके. यह उस लॉजिक से मिलता-जुलता है जिसे Firebase डाइनैमिक लिंक के साथ इंटिग्रेट करते समय, हो सकता है कि आपने अपने ऐप्लिकेशन में पहले से कोड किया हो.

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  setContentView(R.layout.main)

  val  data: Uri? = intent?.data

  val toast = Toast.makeText(this, data, duration)
  toast.show()
}

आपने अभी-अभी जो ऐप्लिकेशन लिंक बनाए हैं उनकी जांच की जा सकती है. इसके लिए, अपने ऐप्लिकेशन को किसी डिवाइस पर चलाएं या Android एम्युलेटर में चलाएं.

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

इसके अलावा, Android Studio में ऐप्लिकेशन लिंक असिस्टेंट का इस्तेमाल करके भी, ऐप्लिकेशन लिंक के इंटिग्रेशन की जांच की जा सकती है. इसके अलावा, कॉन्फ़िगर किए गए ऐप्लिकेशन लिंक यूआरएल के लिए, नीचे दिए गए निर्देश का इस्तेमाल करके यह पक्का किया जा सकता है कि वह मैच होने वाली गतिविधि को सही तरीके से लॉन्च करता है:

adb shell am start -a android.intent.action.VIEW -d <your_deep_link_url>

माइग्रेशन के आखिरी चरण में, पब्लिश या शेयर किए गए Firebase डाइनैमिक लिंक को ऐप्लिकेशन लिंक से बदलना होगा. साथ ही, आने वाले समय में ऐप्लिकेशन लिंक का इस्तेमाल जारी रखना होगा.

इस चरण को पूरा करने का तरीका, इस बात पर निर्भर करता है कि आपने Firebase डाइनैमिक लिंक कहां और कैसे पब्लिश किए हैं. हालांकि, मौजूदा Firebase डाइनैमिक लिंक का मेटाडेटा एक्सपोर्ट करके, यह ट्रैक किया जा सकता है कि कौनसे लिंक मौजूद हैं. डाइनैमिक लिंक का मेटाडेटा एक्सपोर्ट करने की गाइड देखें.

यूनिवर्सल लिंक का इस्तेमाल करने के लिए, आपको एक कॉन्फ़िगरेशन फ़ाइल होस्ट करनी होगी. इससे, आपके लिंक और ऐप्लिकेशन में इस्तेमाल किए गए डोमेन के बीच सुरक्षित असोसिएशन बनाने में मदद मिलती है. यूनिवर्सल लिंक के लिए, यह apple-app-site-association फ़ाइल होती है. इसे AASA फ़ाइल भी कहा जाता है.

Apple-App-Site-Association फ़ाइल बनाने और होस्ट करने का तरीका

AASA फ़ाइल की मदद से, हम उन ऐप्लिकेशन की सूची दे सकते हैं जिन्हें अनुमति मिली है. ये ऐप्लिकेशन, उस वेब डोमेन के कॉन्टेंट को मैनेज कर सकते हैं जिसका इस्तेमाल हम अपने यूनिवर्सल लिंक के लिए करेंगे. AASA फ़ाइल को वेब डोमेन के रूट में, पाथ:/.well-known में होस्ट किया जाना चाहिए.

इस कॉन्फ़िगरेशन को पूरा करने के लिए, नीचे दिया गया तरीका अपनाएं:

  1. अपनी Firebase Hosting रूट डायरेक्ट्री में, सार्वजनिक फ़ोल्डर में ".well-known" फ़ोल्डर बनाएं.

  2. ".well-known" फ़ोल्डर में, "apple-app-site-association" नाम की फ़ाइल बनाएं.

  3. नीचे दिया गया कॉन्टेंट अपनी apple-app-site-association फ़ाइल में कॉपी करें. साथ ही, हर फ़ील्ड का मतलब ध्यान में रखें:

    {
      "applinks": {
        "apps": [],
        "details": [
          {
            "appId": "$TEAM_ID.com.firebase.UniversalLinks",
            "paths": [
              "NOT /_/*",
              "/*"
            ]
          }
        ]
      }
    }
    
    • $TEAM_ID.BundleId - लिंक मैनेज करने की अनुमति वाला, ऐप्लिकेशन का पूरा नाम
  4. होस्टिंग के लिए फ़ाइल को इंडेक्स करने के लिए, अपनी firebase.json फ़ाइल को अपडेट करें.

    "headers": [
      {
        "source": "/.well-known/apple-app-site-association",
        "headers": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ]
      }
    ]
    
  5. अब हमारे पास AASA फ़ाइल है. बदलावों को होस्ट करने के लिए, Firebase डिप्लॉय करें.

  6. AASA फ़ाइल की पुष्टि करने के लिए, https://your-project-domain.web.app/.well-known/app-app-site-association पर जाएं

इस चरण में, यूनिवर्सल लिंक के लिए बनाए गए नए डोमेन से मैच करने वाले सामान्य डीप लिंक यूआरएल का इस्तेमाल करके, अपने Firebase डाइनैमिक लिंक से डीप-लिंक फिर से बनाए जाएंगे.

उदाहरण के लिए, मान लें कि आपके पास यह Firebase डाइनैमिक लिंक है:

डाइनैमिक लिंक का उदाहरण
लिंक का नाम Example.com पर आपका स्वागत है
डीप लिंक https://example.web.app/welcome
Android ऐप्लिकेशन com.example.android
Apple ऐप्लिकेशन com.example.ios
लंबा डाइनैमिक लिंक https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos
शॉर्ट डाइनैमिक लिंक https://example.page.link/m9Mm

इस मामले में, आपको डीप लिंक पैरामीटर को एक्सट्रैक्ट करना होगा - यानी कि https://example.web.app/welcome और अब इसका इस्तेमाल अपने ऐप्लिकेशन के लिए यूनिवर्सल लिंक पैरामीटर के रूप में करेगा.

आपको इस प्रोसेस को हर उस Firebase डाइनैमिक लिंक के लिए दोहराना होगा जिसे आपको ऐप्लिकेशन लिंक / यूनिवर्सल लिंक का इस्तेमाल करके माइग्रेट करना है. साथ ही, आपको इस्तेमाल किए गए डीप-लिंकिंग स्कीम को दोहराना होगा.

उदाहरण के लिए, कृपया Firebase डाइनैमिक लिंक के शॉर्ट लिंक, डीप लिंक पैरामीटर, और माइग्रेट किए गए डीप लिंक की वैल्यू का यह सेट देखें:

शॉर्ट लिंक डीप लिंक पैरामीटर माइग्रेट किया गया डीप लिंक
yourapp.page.link/welcome https://example.com/welcome yourapp.web.app/welcome
yourapp.page.link/c7sn https://example.com/main/?p=23&t=1 yourapp.web.app/main/?p=23&t=1
yourapp.page.link/social https://example.com/friendinvite/?add=1 yourapp.web.app/friendinvite/?add=1

इसके बाद, आपको Firebase डाइनैमिक लिंक के उन सभी इंस्टेंस को बदलना होगा जिन्हें पब्लिश किया गया है या शेयर किया गया है. ऐसा करने के लिए, माइग्रेट किए गए नए डीप लिंक का इस्तेमाल करें, ताकि उपयोगकर्ता पिछले Firebase डाइनैमिक लिंक के बजाय उन यूनिवर्सल लिंक पर क्लिक करें.

डोमेन चुनने के बाद, डीप-लिंकिंग स्कीमा चुनकर और अपने Firebase डाइनैमिक लिंक को यूनिवर्सल लिंक पर माइग्रेट करें. इसके बाद, नए डीप लिंक पाने के लिए, अपने iOS ऐप्लिकेशन और ऐप्लिकेशन कोड को अपडेट करें.

हमारा सुझाव है कि डीप लिंक को हैंडल करने के लिए, अपने ऐप्लिकेशन को कॉन्फ़िगर करते समय, यूनिवर्सल लिंक के दस्तावेज़ को यहां पढ़ें. हालांकि, मुख्य चरणों में ये शामिल हैं:

  1. अपने प्रोजेक्ट का कॉन्फ़िगरेशन अपडेट करें, ताकि आपका ऐप्लिकेशन आपके नए डोमेन से डीप लिंक को मैनेज कर सके

  2. अपने ऐप्लिकेशन कोड में डीप लिंक पाएं

अपने ऐप्लिकेशन को डीप लिंक मैनेज करने की सुविधा देने के लिए, आपको अपने प्रोजेक्ट कॉन्फ़िगरेशन को अपडेट करना होगा. इसके लिए, आपको उस डोमेन के लिए XCode में अपने प्रोजेक्ट में एक और असोसिएटेड डोमेन जोड़ना होगा जिसका इस्तेमाल अब अपनी apple-app-site-associate फ़ाइल को होस्ट करने के लिए किया जा रहा है.

ऐसा करने के लिए:

  1. Xcode खोलना
  2. फ़ाइल नेविगेटर में अपना प्रोजेक्ट चुनना
  3. अपने प्रोजेक्ट की सेटिंग के 'हस्ताक्षर और क्षमताएं' टैब पर जाना
  4. नीचे की ओर स्क्रोल करके, 'जुड़े हुए डोमेन' सेक्शन पर जाएं
  5. "applinks:" फ़ॉर्मैट में, अपने प्रोजेक्ट में अतिरिक्त डोमेन जोड़ने के लिए, + बटन पर क्लिक करें.

आखिर में, इनकमिंग डीप लिंक पाने के लिए, आपको अपने ऐप्लिकेशन कोड को अपडेट करना होगा.

ऐसा करने के लिए, सबसे पहले AppDelegate.swift फ़ाइल को अपडेट करें, ताकि वह Universal Link का जवाब दे सके. इसके लिए, नीचे दिया गया कोड जोड़ें:

func application(_ application: UIApplication, continue userActivity: NSUserActivity,
                 restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
  AppDelegate.showReceivedUrl(userActivity: userActivity);
  return true
}

static func showReceivedUrl(userActivity: NSUserActivity) {
  if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
    let url = userActivity.webpageURL!
    print(url.absoluteString)
}

ऊपर दिया गया कोड, यूनिवर्सल लिंक कॉलबैक के तरीके को बदल देता है. साथ ही, अगर डीप लिंक यूआरएल मौजूद है, तो उसे लॉग करता है.

अब हम SceneDelegate क्लास से भी उसी showReceivedUrl तरीके को कॉल करेंगे, क्योंकि अगर उपयोगकर्ता ने यूनिवर्सल लिंक पर क्लिक करने से पहले ही ऐप्लिकेशन खोल लिया है, तो SceneDelegate में मौजूद यूनिवर्सल लिंक कॉलबैक को ही ट्रिगर किया जाएगा.

func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
  AppDelegate.showReceivedUrl(userActivity: userActivity)
}

आपने अभी जो यूनिवर्सल लिंक बनाए हैं उनकी जांच की जा सकती है. इसके लिए, अपने ऐप्लिकेशन को असल डिवाइस या सिम्युलेटर पर चलाएं.

आपको अपने यूनिवर्सल लिंक के लिए कॉन्फ़िगर किए गए डोमेन का इस्तेमाल करके, क्लिक किया जा सकने वाला एक लिंक बनाना होगा. इसके बाद, उस लिंक पर क्लिक करना होगा, ताकि यह पक्का हो सके कि वह लिंक आपके ऐप्लिकेशन में खुलेगा और आपको ऐप्लिकेशन में सही स्क्रीन पर ले जाएगा.

स्मार्ट ऐप्लिकेशन बैनर के साथ काम करना

हमारा सुझाव है कि आप स्मार्ट ऐप्लिकेशन बैनर का इस्तेमाल करें. इससे, आपके उपयोगकर्ताओं को Firebase डाइनैमिक लिंक जैसा अनुभव मिलता है.

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

माइग्रेशन का आखिरी चरण, पब्लिश किए गए या शेयर किए गए Firebase डाइनैमिक लिंक को जहां भी हो सके वहां यूनिवर्सल लिंक से बदलना होगा. साथ ही, आने वाले समय में यूनिवर्सल लिंक का इस्तेमाल करना जारी रखना होगा.

आपने Firebase डाइनैमिक लिंक कहां और कैसे पब्लिश किए हैं, इसके आधार पर यह चरण अलग-अलग होगा.

माइग्रेट किए जाने वाले मौजूदा Firebase डाइनैमिक लिंक को ट्रैक करने में आपकी मदद करने के लिए, हम Firebase डाइनैमिक लिंक से अपने शॉर्ट लिंक का मेटाडेटा एक्सपोर्ट करने का तरीका बताने वाली गाइड पब्लिश करेंगे. ज़्यादा अपडेट के लिए, कृपया डाइनैमिक लिंक की सुविधा बंद होने के बारे में अक्सर पूछे जाने वाले सवालों का दस्तावेज़ देखें.