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

माइग्रेशन की इस गाइड में, ऐप्लिकेशन लिंक और यूनिवर्सल लिंक का इस्तेमाल करने के बारे में बताया गया है. साथ ही, इसमें ऐप्लिकेशन-साइट असोसिएशन फ़ाइलों को होस्ट करने के लिए, 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 डाइनैमिक लिंक को ऐप्लिकेशन लिंक और यूनिवर्सल लिंक से बदलें.

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

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

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

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 Hosting रूट डायरेक्ट्री में, .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 फ़ाइल में एलान किए गए applicationId को दिखाता है
    • sha256_cert_fingerprints - इस पैरामीटर में, उस पासकोड फ़ाइल का SHA256 फ़िंगरप्रिंट होता है जिसका इस्तेमाल ऐप्लिकेशन को साइन करने के लिए किया जाता है.

    डीबग करने के लिए, sha256_cert_fingerprints रिकॉर्ड जनरेट करने के लिए, Android Studio में इस्तेमाल की जाने वाली debug.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>

इस चरण में, आपको यह बताना है कि wxample.web.app डोमेन से डीप लिंक मैनेज करने के लिए, MainActivity डेस्टिनेशन है. इसमें /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 डाइनैमिक लिंक से अपने शॉर्ट लिंक का मेटाडेटा एक्सपोर्ट करने का तरीका बताने वाली गाइड पब्लिश करेंगे. ज़्यादा अपडेट के लिए, कृपया डाइनैमिक लिंक की सुविधा बंद होने के बारे में अक्सर पूछे जाने वाले सवालों का दस्तावेज़ देखें.