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

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

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

ฟีเจอร์ ลิงก์แบบไดนามิกของ Firebase App Link / Universal Link
นำผู้ใช้ไปยัง Store ที่ถูกต้องสำหรับอุปกรณ์จากคลิกลิงก์เพียงครั้งเดียว
มอบเส้นทางที่ต่อเนื่องให้ผู้ใช้หลังจากดาวน์โหลดและติดตั้งแอปโดยใช้ 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 Dynamic Links ดังนี้

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 ก่อนหน้านี้)

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

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

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

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

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

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

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

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

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

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

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

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

  4. อัปเดตแอป Android / iOS และโค้ดของแอปพลิเคชันเพื่อรับลิงก์ในรายละเอียด

  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 / Universal Link ด้วย

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

ถัดไป คุณจะต้องตั้งค่าและกําหนดค่าอินสแตนซ์โฮสติ้งของ Firebase

เมื่อตั้งค่าอินสแตนซ์โฮสติ้งของ Firebase เสร็จแล้ว คุณจะมีโดเมนที่คล้ายกับ 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 โดยใช้เครื่องมือจัดการคีย์

    ดูวิธีการเพิ่มเติมในการทําขั้นตอนนี้ได้จากส่วนนี้ของเอกสารประกอบเกี่ยวกับ App Link

    หรือจะใช้App Links Assistant ใน 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 ของคุณ

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

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

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

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 Emulator

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

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

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

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

  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 แต่ละรายการที่ต้องการย้ายข้อมูลไปใช้ App Link / Universal 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)
}

โค้ดข้างต้นจะลบล้างเมธอด Callback ของ 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 Dynamic ให้กับผู้ใช้

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

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

การดำเนินการขั้นตอนนี้จะแตกต่างกันไปโดยขึ้นอยู่กับตำแหน่งและวิธีเผยแพร่ Firebase Dynamic Links

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