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

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

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

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

หากยังคงต้องการใช้ฟีเจอร์อื่นๆ ของ Firebase Dynamic Link ในการย้ายข้อมูลซึ่งคู่มือนี้ไม่รองรับ โปรดดูสถานการณ์การย้ายข้อมูลอื่นๆ ในเอกสารประกอบคําถามที่พบบ่อยเกี่ยวกับการเลิกใช้งาน Dynamic 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

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

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

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

เมื่อตั้งค่าอินสแตนซ์ 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 โดยใช้เครื่องมือจัดการคีย์

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

    หรือจะใช้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 ของคุณ จากนั้นคลิกลิงก์นั้นเพื่อให้แน่ใจว่าลิงก์จะเปิดขึ้นในแอปและนําคุณไปยังกิจกรรมที่ต้องการ

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

หากต้องการใช้ 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 และจะใช้พารามิเตอร์นี้เป็นพารามิเตอร์ Universal Link สําหรับแอป

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