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

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

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

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

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

สมมติว่าคุณมีลิงก์แบบไดนามิกของ Firebase ที่มีลักษณะดังนี้

ตัวอย่างลิงก์แบบไดนามิก
ชื่อลิงก์ ยินดีต้อนรับสู่ Example.com
Deep Link 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 ก่อนหน้านี้)

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

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

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

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

คู่มือนี้อธิบายวิธีสร้าง 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. การทดสอบการผสานรวม App Link / Universal Link

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

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

เลือกโดเมน

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

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

  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 โดยใช้เครื่องมือคีย์ได้

    อ่านส่วนนี้ในเอกสารประกอบเกี่ยวกับลิงก์แอปเพื่อดูวิธีการเพิ่มเติมเกี่ยวกับขั้นตอนนี้

    หรืออาจใช้ผู้ช่วยสำหรับลิงก์แอปใน 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 Link

ตัวอย่างเช่น สมมติว่าคุณมีลิงก์แบบไดนามิกของ Firebase ต่อไปนี้

ตัวอย่างลิงก์แบบไดนามิก
ชื่อลิงก์ ยินดีต้อนรับสู่ Example.com
Deep Link 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 แต่ละลิงก์ที่ต้องการย้ายข้อมูลไปใช้ 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 ไปยัง 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" ด้วย ซึ่งทำให้คุณกำหนดแอปเป็นตัวแฮนเดิลเริ่มต้นสำหรับลิงก์ประเภทนี้ได้

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

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

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

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

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

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

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

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

ขั้นตอนการสร้างและโฮสต์ไฟล์การเชื่อมโยงแอป apple-app-site

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

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

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

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

  3. คัดลอกเนื้อหาต่อไปนี้ไปยังไฟล์การเชื่อมโยงเว็บไซต์ apple-app-site แล้วจดจำความหมายของแต่ละช่องด้านล่าง

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

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

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

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

  2. รับ Deep Link ในรหัสแอปพลิเคชันของคุณ

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

ซึ่งสามารถทำได้โดย

  1. กำลังเปิด Xcode
  2. การเลือกโปรเจ็กต์ในเครื่องมือนำทางไฟล์
  3. การไปที่แท็บ Signing &ความสามารถของการตั้งค่าโปรเจ็กต์
  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 จากนั้นคลิกลิงก์นั้นเพื่อเปิดในแอปและพาคุณไปยังหน้าจอที่ต้องการในแอป

การรองรับแบนเนอร์แอปอัจฉริยะ

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

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

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

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

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