เปลี่ยนจากลิงก์แบบไดนามิกเป็นลิงก์แอปและ Universal Link

คู่มือการย้ายข้อมูลนี้มุ่งเน้นการใช้App Link และUniversal Link โดยอาจใช้ Firebase Hosting เพื่อโฮสต์ไฟล์การเชื่อมโยงแอปกับเว็บไซต์

การย้ายข้อมูลนี้จะแทนที่ฟีเจอร์ลิงก์แบบไดนามิกของ Firebase ต่อไปนี้

ฟีเจอร์ ลิงก์แบบไดนามิกของ Firebase App Link / Universal Link
นำผู้ใช้ไปยังร้านค้าที่ถูกต้องสำหรับอุปกรณ์ของตนจากการคลิกลิงก์เดียว
มอบเส้นทางต่อเนื่องให้แก่ผู้ใช้หลังจากดาวน์โหลดและ ติดตั้งแอปโดยใช้ Deferred Deep Link
มอบประสบการณ์ตามบริบทให้แก่ผู้ใช้โดยใช้เนื้อหาที่ทำ Deep Link ใน แอป (เมื่อติดตั้งแล้ว)
ระบุข้อมูลวิเคราะห์ที่เกี่ยวข้องกับเหตุการณ์การคลิกลิงก์แบบไดนามิก
ให้ความสามารถในการสร้าง URL ของลิงก์แบบสั้น

หากยังคงต้องใช้ฟีเจอร์อื่นๆ ของลิงก์แบบไดนามิกของ 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

ด้วย Deep Link ของ App Link / Universal Link ที่มีลักษณะดังนี้

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

โปรดทราบว่า Deep Link ของ App Link / Universal Link จะมอบสิ่งต่อไปนี้ให้แก่ผู้ใช้

  • Deep Link ที่ผู้ใช้คลิกได้ซึ่งจะเปิดแอปของคุณเมื่อติดตั้งแล้ว
  • การเดินทางของผู้ใช้ที่นำไปยังส่วนใดส่วนหนึ่งของแอปเมื่อเปิด

อย่างไรก็ตาม Deep Link ของ App Link / Universal Link จะไม่แสดงลักษณะการทำงานต่อไปนี้สำหรับผู้ใช้ (ซึ่งลิงก์แบบไดนามิกของ Firebase เคยทำได้)

  • นำผู้ใช้ไปยังร้านค้าที่ถูกต้องสำหรับอุปกรณ์เพื่อดาวน์โหลดและ ติดตั้งแอป
  • มอบการเดินทางของผู้ใช้ที่ต่อเนื่องหลังจากดาวน์โหลด ติดตั้ง และเปิดแอปเป็นครั้งแรก

โปรดทราบความแตกต่างในลักษณะการทำงานและฟังก์ชันการทำงานของ App Links / Universal Links เหล่านี้เมื่อเทียบกับลิงก์แบบไดนามิกของ Firebase ที่ระบุไว้ ในตารางด้านบน

ก่อนเริ่มต้น

ลิงก์แบบไดนามิกของ Firebase ใช้ลิงก์ของแอป (ใน Android) และลิงก์สากล (ใน iOS) ในการติดตั้งใช้งานพื้นฐานของตัวเองเพื่อให้ฟังก์ชันการทำงานของ Deep Link หลังจากติดตั้งแอปแล้ว

คู่มือนี้จะอธิบายวิธีสร้าง App Link และ Universal Link ของคุณเอง โดยใช้ Firebase Hosting เพื่อแทนที่ฟังก์ชันการทํางานส่วนนั้นที่ได้รับจาก ลิงก์แบบไดนามิกของ Firebase ขณะย้ายข้อมูลลิงก์แบบไดนามิกของ Firebase ไปยังโซลูชันการย้ายข้อมูล App Link / Universal Link ใหม่

คุณจะต้องมีข้อมูลต่อไปนี้เพื่อทำการย้ายข้อมูลให้เสร็จสมบูรณ์

  • ลิงก์แบบไดนามิกของ Firebase ที่คุณต้องการย้ายข้อมูล
  • พารามิเตอร์ของ URL แบบ Deep Link ที่รวมอยู่ใน Dynamic Link
  • โดเมนที่คุณวางแผนจะใช้แทนโดเมนลิงก์แบบไดนามิกของ Firebase ก่อนหน้า (หากมี)

คุณสามารถใช้คู่มือการส่งออกข้อมูลเมตาของ Dynamic Links เพื่อส่งออกข้อมูลเมตาของลิงก์ที่มีอยู่และ รับข้อมูลที่ระบุไว้ข้างต้น

ภาพรวมขั้นตอนการย้ายข้อมูล

  1. จัดสรรโดเมนใหม่ (หากคุณยังไม่มีโดเมนที่ต้องการใช้) เพื่อโฮสต์ไฟล์การกำหนดค่า App Link / Universal Link โดยใช้ Firebase Hosting

  2. สร้างและโฮสต์ไฟล์การกำหนดค่า App Link / Universal Link ใน โดเมนโฮสติ้ง

  3. สร้าง App Link / Universal Link ใหม่ที่ตรงกับรูปแบบ Deep Link ที่ใช้ในลิงก์แบบไดนามิกของ Firebase

  4. อัปเดตแอป Android / iOS และโค้ดแอปพลิเคชันเพื่อรับ Deep Link

  5. การทดสอบการผสานรวมลิงก์แอป / ลิงก์สากล

  6. แทนที่ลิงก์แบบไดนามิกของ Firebase ที่เผยแพร่หรือแชร์ด้วย App Link และ Universal Link

ขั้นตอนแรก จะเหมือนกันทั้งในขั้นตอนการย้ายข้อมูล App Link หรือ Universal Link ส่วนที่เหลือจะแตกต่างกันไปตามแพลตฟอร์ม ดังนั้นให้ไปที่ส่วนของ คำแนะนำด้านล่างตามแพลตฟอร์มที่คุณต้องการย้ายข้อมูลก่อน

เลือกโดเมน

ขั้นตอนแรกคือการเลือกโดเมนที่ต้องการใช้สำหรับ App Link / Universal Link นี่จะเป็นโดเมนที่จะใช้สำหรับลิงก์ใหม่ ที่คุณจะแชร์กับผู้ใช้

หากคุณใช้ Firebase Hosting ระบบจะจัดสรรโดเมนย่อยของโปรเจ็กต์ที่มีรูปแบบ your-project-domain.web.app หรือ your-project-domain.firebaseapp.com โดยอัตโนมัติโดยไม่มีค่าใช้จ่าย คุณ สามารถใช้โดเมนที่กำหนดเองโดยมีหรือไม่มีโฮสติ้งของ Firebase เพื่อโฮสต์ไฟล์กำหนดค่า App Link / ลิงก์สากลได้ด้วย

ตั้งค่าโฮสติ้งของ Firebase

จากนั้นคุณจะต้องตั้งค่าและกำหนดค่าอินสแตนซ์ Firebase Hosting

เมื่อตั้งค่าอินสแตนซ์ Firebase Hosting เสร็จแล้ว คุณจะมีโดเมนที่คล้ายกับ your-project-domain.web.app หรือโดเมนที่กำหนดเอง หากต้องการ

หากต้องการใช้ App Link คุณต้องโฮสต์ไฟล์การกำหนดค่าที่จะช่วยสร้างการเชื่อมโยงที่ปลอดภัยระหว่างโดเมนที่ใช้ในลิงก์กับแอปของคุณ สำหรับ App Link ไฟล์นี้คือไฟล์ assetlinks.json

ขั้นตอนในการสร้างและโฮสต์ไฟล์ assetlinks.json

ไฟล์ assetlinks.json ช่วยให้เราแสดงรายการแอปที่ได้รับอนุญาตซึ่ง จัดการเนื้อหาของโดเมนเว็บที่เราจะใช้สำหรับ App Link ได้ ไฟล์ assetlinks.json ต้องโฮสต์ในรูทของโดเมนเว็บ ภายใต้เส้นทาง /.well-known

ทำตามขั้นตอนด้านล่างเพื่อกำหนดค่านี้ให้เสร็จสมบูรณ์

  1. สร้างโฟลเดอร์ .well-known ภายใต้โฟลเดอร์สาธารณะใน ไดเรกทอรีรากของ Firebase Hosting

  2. สร้างไฟล์ชื่อ assetlinks.json ในโฟลเดอร์ .well-known

  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 - หมายถึง applicationId ที่ประกาศไว้ในไฟล์ build.gradle ของแอป
    • sha256_cert_fingerprints - หมายถึงลายนิ้วมือ SHA256 ของ ไฟล์ที่เก็บคีย์ที่คุณใช้ในการลงนามแอปพลิเคชัน

    คุณสามารถใช้ไฟล์ debug.keystore ที่ Android Studio ใช้เพื่อสร้างระเบียน sha256_cert_fingerprints เพื่อวัตถุประสงค์ในการแก้ไขข้อบกพร่อง คุณจะเห็นไฟล์ที่ /Users/<username>/.android/debug.keystore ใน Mac และ Linux และ C:\Users\<username>\.android\debug.keystore ใน Windows

    จากที่เก็บคีย์นี้ คุณสามารถดึงค่า SHA256 ได้โดยใช้ Keytool

    ดูวิธีการเพิ่มเติมในการทำขั้นตอนนี้ให้เสร็จสมบูรณ์ได้ที่ส่วนนี้ของเอกสารประกอบเกี่ยวกับ App Links

    หรือคุณจะใช้ ผู้ช่วย App Link ใน Android Studio เพื่อสร้างเนื้อหาไฟล์ assetlinks.json และ กำหนดค่าแอปพลิเคชันให้จัดการ App Link ก็ได้

  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

ในขั้นตอนนี้ คุณจะต้องสร้าง Deep Link ใหม่จากลิงก์แบบไดนามิกของ Firebase โดยใช้ URL ของ Deep Link ปกติที่ตรงกับโดเมนใหม่ที่คุณสร้างขึ้นสำหรับ App Links

เช่น สมมติว่าคุณมีลิงก์แบบไดนามิกของ 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

ในกรณีนี้ คุณจะต้องแยกพารามิเตอร์ Deep Link เช่น https://example.web.app/welcome และตอนนี้จะใช้พารามิเตอร์นี้เป็นพารามิเตอร์ App Link สำหรับแอป

คุณจะต้องทำกระบวนการนี้ซ้ำสำหรับ Firebase Dynamic Link แต่ละรายการที่ต้องการย้ายข้อมูลไปใช้ลิงก์ของแอป / ลิงก์สากล และจำลองสคีมา Deep Link ที่คุณใช้

เช่น โปรดดูชุดลิงก์สั้นของลิงก์แบบไดนามิกของ Firebase พารามิเตอร์ Deep Link และค่า Deep Link ที่ย้ายข้อมูลต่อไปนี้

ลิงก์แบบสั้น พารามิเตอร์ Deep Link Deep Link ที่ย้ายข้อมูล
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 ที่เผยแพร่หรือแชร์ด้วย Deep Link ที่ย้ายข้อมูลใหม่เพื่อให้ผู้ใช้คลิกลิงก์แอปเหล่านั้นแทนลิงก์แบบไดนามิกของ Firebase ก่อนหน้า

ขั้นตอนถัดไปหลังจากเลือกโดเมน เลือกสคีมา Deep Link และ ย้ายข้อมูลลิงก์แบบไดนามิกของ Firebase ไปยัง App Link คือการอัปเดตแอป Android และโค้ดแอปพลิเคชันเพื่อรับ Deep Link ใหม่

เราขอแนะนำให้ทำตามเอกสารประกอบ App Link ฉบับเต็มที่นี่ หรือคำแนะนำของ Android Studio ในการกำหนดค่าแอปเพื่อจัดการ Deep Link แต่ขั้นตอนหลักๆ มีดังนี้

  1. ระบุว่ากิจกรรมใดควรจัดการ Deep Link ที่เกี่ยวข้อง
  2. การเพิ่มตัวกรอง Intent สำหรับกิจกรรมเหล่านั้นในไฟล์ AndroidManifest.xml
  3. การรับ Deep Link ในโค้ดแอปพลิเคชันของกิจกรรม

สมมติว่าคุณต้องการใช้ MainActivity เพื่อจัดการ Deep Link บางรายการ โดยคุณจะต้องเพิ่มตัวกรอง Intent ต่อไปนี้ลงใน MainActivity ในไฟล์ AndroidManifest.xml

<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 เป็นปลายทางสำหรับ การจัดการ Deep Link จากโดเมน wxample.web.app และมี คำนำหน้าเส้นทาง /welcome โปรดทราบว่าคุณจะต้องระบุแอตทริบิวต์ android:autoVerify="true" ด้วย ซึ่งจะช่วยให้คุณกำหนดแอปเป็น ตัวแฮนเดิลเริ่มต้นสำหรับลิงก์ประเภทนี้ได้

สุดท้าย คุณจะต้องเพิ่มโค้ดใน MainActivity เพื่อดึงข้อมูล Deep Link และใช้ข้อมูลดังกล่าวเพื่อขับเคลื่อนประสบการณ์การใช้งาน Deep Link ในแอป ซึ่งคล้ายกับตรรกะที่คุณอาจเขียนโค้ดไว้แล้วในแอปเมื่อผสานรวมกับ Firebase Dynamic Links

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()
}

คุณทดสอบ App Link ที่เพิ่งสร้างได้โดยการเรียกใช้แอปใน อุปกรณ์จริงหรือใน โปรแกรมจำลอง Android

คุณจะต้องสร้างลิงก์ที่คลิกได้โดยใช้โดเมนที่กำหนดค่าไว้สำหรับ App Links จากนั้นคลิกลิงก์ดังกล่าวเพื่อให้แน่ใจว่าลิงก์จะเปิดขึ้นในแอปและ นำคุณไปยังกิจกรรมที่ต้องการ

หรือคุณจะทดสอบการผสานรวม App Link โดยใช้ผู้ช่วย App Link ใน Android Studio หรือใช้คำสั่งต่อไปนี้สำหรับ URL ของ App Link ที่คุณ กำหนดค่าไว้เพื่อให้แน่ใจว่า URL จะเปิดใช้งานที่ตรงกันอย่างถูกต้องก็ได้

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

ขั้นตอนสุดท้ายของการย้ายข้อมูลคือการแทนที่ลิงก์แบบไดนามิกของ Firebase ที่เผยแพร่หรือแชร์ด้วย App Link ทุกที่ที่เป็นไปได้ และใช้ App Link ต่อไป

การทําขั้นตอนนี้จะแตกต่างกันไปขึ้นอยู่กับตําแหน่งและวิธีที่คุณเผยแพร่ลิงก์แบบไดนามิกของ Firebase แต่เพื่อช่วยให้คุณติดตามลิงก์ที่มีอยู่ได้ คุณสามารถส่งออกข้อมูลเมตาของลิงก์แบบไดนามิกของ Firebase ที่มีอยู่ได้ ดูคู่มือการส่งออกข้อมูลเมตาของลิงก์แบบไดนามิก

หากต้องการใช้ Universal Link คุณต้องโฮสต์ไฟล์การกำหนดค่าที่จะช่วยสร้างการเชื่อมโยงที่ปลอดภัยระหว่างโดเมนที่ใช้ในลิงก์กับแอปของคุณ สำหรับ Universal Link ไฟล์นี้คือไฟล์ apple-app-site-association (หรือที่เรียกว่าไฟล์ AASA)

ขั้นตอนในการสร้างและโฮสต์ไฟล์ apple-app-site-association

ไฟล์ AASA ช่วยให้เราแสดงรายการแอปที่ได้รับอนุญาตซึ่งสามารถจัดการ เนื้อหาของโดเมนเว็บที่เราจะใช้สำหรับ Universal Link ไฟล์ AASA ต้องโฮสต์ในรูทของโดเมนเว็บภายใต้เส้นทาง /.well-known

ทำตามขั้นตอนด้านล่างเพื่อกำหนดค่านี้ให้เสร็จสมบูรณ์

  1. สร้างโฟลเดอร์ ".well-known" ภายใต้โฟลเดอร์สาธารณะใน ไดเรกทอรีรากของ Firebase Hosting

  2. สร้างไฟล์ชื่อ "apple-app-site-association" ในโฟลเดอร์ ".well-known"

  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 deploy เพื่อโฮสต์การเปลี่ยนแปลง

  6. ยืนยันไฟล์ AASA โดยไปที่ https://your-project-domain.web.app/.well-known/app-app-site-association

ในขั้นตอนนี้ คุณจะต้องสร้าง Deep Link ใหม่จากลิงก์แบบไดนามิกของ Firebase โดยใช้ URL ของ Deep Link ปกติที่ตรงกับโดเมนใหม่ที่คุณสร้างขึ้นสำหรับ Universal Link

เช่น สมมติว่าคุณมีลิงก์แบบไดนามิกของ 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

ในกรณีนี้ คุณจะต้องแยกพารามิเตอร์ Deep Link เช่น https://example.web.app/welcome และใช้พารามิเตอร์นี้เป็นพารามิเตอร์ลิงก์สากลสำหรับแอป

คุณจะต้องทำกระบวนการนี้ซ้ำสำหรับ Firebase Dynamic Link แต่ละรายการที่ต้องการย้ายข้อมูลไปใช้ลิงก์ของแอป / ลิงก์สากล และจำลองสคีมา Deep Link ที่คุณใช้

เช่น โปรดดูชุดลิงก์สั้นของลิงก์แบบไดนามิกของ Firebase พารามิเตอร์ Deep Link และค่า Deep Link ที่ย้ายข้อมูลต่อไปนี้

ลิงก์แบบสั้น พารามิเตอร์ Deep Link Deep Link ที่ย้ายข้อมูล
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 ที่เผยแพร่หรือแชร์ด้วย Deep Link ใหม่ที่ย้ายข้อมูลแล้ว เพื่อให้ผู้ใช้คลิกลิงก์ทั่วไปเหล่านั้นแทนลิงก์แบบไดนามิกของ Firebase ก่อนหน้า

ขั้นตอนถัดไปหลังจากเลือกโดเมน เลือกสคีมา Deep Link และ ย้ายข้อมูลลิงก์แบบไดนามิกของ Firebase ไปยังลิงก์สากลคือการอัปเดตแอป iOS และโค้ดแอปพลิเคชันเพื่อรับ Deep Link ใหม่

เราขอแนะนําให้ทําตามเอกสารประกอบ Universal Link ฉบับเต็มที่นี่ ในการกําหนดค่าแอปเพื่อจัดการ Deep Link แต่ขั้นตอนหลักๆ มีดังนี้

  1. อัปเดตการกำหนดค่าโปรเจ็กต์เพื่อเปิดให้แอปจัดการ Deep Link จากโดเมนที่สร้างขึ้นใหม่

  2. รับ Deep Link ในโค้ดแอปพลิเคชัน

หากต้องการอัปเดตการกำหนดค่าโปรเจ็กต์เพื่อเปิดใช้แอปให้จัดการ Deep Link ได้ คุณจะต้องเพิ่มโดเมนที่เชื่อมโยงอีกโดเมนหนึ่งลงในโปรเจ็กต์ใน xCode สำหรับโดเมนที่คุณวางแผนจะใช้เพื่อโฮสต์ไฟล์ apple-app-site-associate

โดยทำดังนี้

  1. การเปิด Xcode
  2. การเลือกโปรเจ็กต์ในตัวนำทางไฟล์
  3. ไปที่แท็บการลงนามและความสามารถของการตั้งค่าโปรเจ็กต์
  4. เลื่อนลงไปที่ส่วนโดเมนที่เชื่อมโยง
  5. คลิกปุ่ม + เพื่อเพิ่มโดเมนอื่นลงในโปรเจ็กต์ในรูปแบบ "applinks:"

สุดท้าย คุณต้องอัปเดตโค้ดแอปพลิเคชันเพื่อให้รับ Deep Link ขาเข้าได้

หากต้องการดำเนินการนี้ ก่อนอื่นให้อัปเดตไฟล์ 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)
}

โค้ดด้านบนจะลบล้างวิธีการเรียกกลับของ Universal Link และบันทึก URL ของ Deep Link หากมี

ตอนนี้เราจะเรียกใช้showReceivedUrlเมธอดเดียวกันจากคลาส SceneDelegate ด้วย เนื่องจากหากแอปเปิดอยู่แล้วเมื่อผู้ใช้คลิก Universal Link ระบบจะเรียกใช้การเรียกกลับของ Universal Link ภายใน SceneDelegate

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

คุณทดสอบ Universal Link ที่เพิ่งสร้างได้โดยการเรียกใช้แอปในอุปกรณ์จริงหรือโปรแกรมจำลอง

คุณจะต้องสร้างลิงก์ที่คลิกได้โดยใช้โดเมนที่กำหนดค่าไว้สำหรับ Universal Link แล้วคลิกลิงก์นั้นเพื่อให้แน่ใจว่าลิงก์จะเปิดขึ้นในแอป และนำคุณไปยังหน้าจอที่ต้องการในแอป

การรองรับแบนเนอร์สมาร์ทแอป

เราขอแนะนำให้ใช้แบนเนอร์แอปอัจฉริยะ เป็นวิธีมอบประสบการณ์ที่คล้ายกับลิงก์แบบไดนามิกของ Firebase ให้แก่ผู้ใช้

เมื่อใช้แบนเนอร์แอปอัจฉริยะ ระบบจะนำผู้ใช้ไปยัง App Store สำหรับข้อมูลผลิตภัณฑ์ในแอป หากผู้ใช้ยังไม่ได้ติดตั้งแอปในอุปกรณ์ นอกจากนี้ คุณยัง กำหนดค่าพารามิเตอร์เพื่อส่งไปยังแอปหลังจากที่ดาวน์โหลด และติดตั้งแล้ว เพื่อให้ผู้ใช้เดินทางต่อได้ หากติดตั้งแอปอยู่แล้ว แอปจะเปิดขึ้นพร้อมส่งพารามิเตอร์ไปยังแอปของคุณเพื่อช่วยนำผู้ใช้ไปยังเนื้อหาที่เหมาะสมตาม Smart App Banner ที่ผู้ใช้คลิก

ขั้นตอนสุดท้ายของการย้ายข้อมูลคือการแทนที่ลิงก์แบบไดนามิกของ Firebase ที่เผยแพร่หรือแชร์ ด้วยลิงก์ทั่วไปทุกที่ที่เป็นไปได้ และใช้ลิงก์ทั่วไปต่อไป ในอนาคต

การทำขั้นตอนนี้ให้เสร็จสมบูรณ์จะแตกต่างกันไปขึ้นอยู่กับว่าคุณเผยแพร่ลิงก์แบบไดนามิกของ Firebase ที่ใดและอย่างไร

เราจะเผยแพร่คำแนะนำเกี่ยวกับวิธีส่งออกข้อมูลเมตาของลิงก์แบบสั้นจากลิงก์แบบไดนามิกของ Firebase เพื่อช่วยคุณติดตามลิงก์แบบไดนามิกของ Firebase ที่มีอยู่ซึ่งจะย้ายข้อมูล โปรดกลับมาดูข้อมูลอัปเดตเพิ่มเติมได้ที่เอกสารคำถามที่พบบ่อยเกี่ยวกับการเลิกใช้งาน Dynamic Links