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

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

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

ฟีเจอร์ ลิงก์แบบไดนามิกของ Firebase ลิงก์แอป / 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 ทำก่อนหน้านี้)

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

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

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

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

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

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

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

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

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

  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 จะเป็นไฟล์ 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 โดยใช้เครื่องมือคีย์ได้

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

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

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

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

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

สมมติว่าคุณต้องการใช้ MainActivity เพื่อจัดการกับ ลิงก์ ในการทำเช่นนี้ คุณต้องเพิ่มตัวกรอง 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 Pathคำนำหน้า โปรดทราบว่าคุณต้องระบุ android:autoVerify="จริง" ซึ่งให้คุณกำหนดแอปเป็น ตัวแฮนเดิลเริ่มต้นสำหรับลิงก์ประเภทนี้

ขั้นตอนสุดท้าย คุณจะต้องเพิ่มโค้ดในกิจกรรม MainActivity เพื่อเรียก ให้ข้อมูล 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()
}

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

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

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

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

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

  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
ลิงก์ในรายละเอียด 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 พารามิเตอร์ลิงก์สำหรับแอป

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

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

  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 ของลิงก์ หากมี

ตอนนี้เราจะเรียกเมธอด showReceivedUrl เดียวกันจากคลาส SceneDelegate รวมถึงในกรณีที่ผู้ใช้เปิดแอปอยู่แล้วตอนที่ผู้ใช้คลิก Universal Link Callback ของ Universal Link ภายใน SceneDelegate จะเป็น ซึ่งจะมีการเรียกใช้

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

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

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

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

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

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

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

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

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