ย้ายจากลิงก์แบบไดนามิกไปยังลิงก์แอป & ลิงค์สากล

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

การย้ายข้อมูลนี้จะแทนที่ฟีเจอร์ Firebase Dynamic Links ต่อไปนี้:

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

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

สมมติว่าคุณมี Firebase Dynamic Link ที่มีลักษณะดังนี้:

ตัวอย่างลิงค์แบบไดนามิก
ชื่อลิงค์ ยินดีต้อนรับสู่ Example.com
ลิงก์ลึก https://example.web.app/welcome
แอป Android com.example.android
แอปแอปเปิ้ล 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

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

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

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

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

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

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

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

ก่อนที่คุณจะเริ่ม

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

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

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

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

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

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

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

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

  3. สร้าง App Links / Universal Links ใหม่ซึ่งตรงกับสคีมา Deep Link ที่ใช้ใน Firebase Dynamic Links ของคุณ

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

  5. ทดสอบการรวม App Links / Universal Links ของคุณ

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

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

เลือกโดเมน

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

หากคุณใช้ โฮสติ้ง 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 Links คุณต้องโฮสต์ไฟล์การกำหนดค่าที่ช่วยสร้างการเชื่อมโยงที่ปลอดภัยระหว่างโดเมนที่ใช้ในลิงก์และแอปของคุณ สำหรับ App Links นี่คือไฟล์ assetlinks.json

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

ไฟล์ assetlinks.json ช่วยให้เราสามารถระบุรายชื่อแอปที่ได้รับอนุญาตซึ่งสามารถจัดการเนื้อหาของโดเมนเว็บที่เราจะใช้สำหรับ App Links ของเรา ไฟล์ 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 Links

  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

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

ตัวอย่างเช่น สมมติว่าคุณมี Firebase Dynamic Link ต่อไปนี้:

ตัวอย่างลิงก์แบบไดนามิก
ชื่อลิงค์ ยินดีต้อนรับสู่ Example.com
ลิงก์ลึก https://example.web.app/welcome
แอป Android com.example.android
แอปแอปเปิ้ล 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 แต่ละรายการที่คุณต้องการย้ายไปใช้ App Links / Universal Links และจำลองแบบ Deep Linking Schema ที่คุณใช้

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

ลิงค์สั้น ๆ พารามิเตอร์ลิงก์ในรายละเอียด ลิงก์ในรายละเอียดที่ย้ายข้อมูล
yourapp.page.link/ยินดีต้อนรับ https://example.com/welcome yourapp.web.app/ยินดีต้อนรับ
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 ที่ได้รับการเผยแพร่หรือแชร์ด้วยลิงก์ในรายละเอียดที่ย้ายใหม่ เพื่อให้ผู้ใช้คลิกลิงก์แอปเหล่านั้นแทนลิงก์แบบไดนามิกของ Firebase ก่อนหน้า

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

เราขอแนะนำให้ปฏิบัติตาม เอกสาร App Links ฉบับเต็มที่นี่ หรือ คู่มือ Android Studio ในการกำหนดค่าแอปของคุณให้จัดการลิงก์ในรายละเอียด แต่ขั้นตอนหลักประกอบด้วย:

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

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

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

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

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

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

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

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

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

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

ไฟล์ AASA ช่วยให้เราสามารถจัดเตรียมรายชื่อแอปที่ได้รับอนุญาตซึ่งสามารถจัดการเนื้อหาของโดเมนเว็บที่เราจะใช้สำหรับ Universal Links ของเรา ไฟล์ 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

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

ตัวอย่างเช่น สมมติว่าคุณมี Firebase Dynamic Link ต่อไปนี้:

ตัวอย่างลิงก์แบบไดนามิก
ชื่อลิงค์ ยินดีต้อนรับสู่ Example.com
ลิงก์ลึก https://example.web.app/welcome
แอป Android com.example.android
แอปแอปเปิ้ล 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 Links / Universal Links และจำลองแบบ Deep Linking Schema ที่คุณใช้

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

ลิงค์สั้น ๆ พารามิเตอร์ลิงก์ในรายละเอียด ลิงก์ในรายละเอียดที่ย้ายข้อมูล
yourapp.page.link/ยินดีต้อนรับ https://example.com/welcome yourapp.web.app/ยินดีต้อนรับ
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 ที่ได้รับการเผยแพร่หรือแชร์ด้วยลิงก์ในรายละเอียดที่ย้ายใหม่ เพื่อให้ผู้ใช้คลิกลิงก์สากลเหล่านั้นแทนลิงก์แบบไดนามิกของ Firebase ก่อนหน้า

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

เราขอแนะนำให้ปฏิบัติตาม เอกสาร Universal Links ฉบับเต็มที่นี่ เพื่อกำหนดค่าแอปของคุณให้จัดการลิงก์ในรายละเอียด แต่ขั้นตอนหลักได้แก่:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

การทำขั้นตอนนี้จะแตกต่างกันไปขึ้นอยู่กับว่าคุณเผยแพร่ Firebase Dynamic Links ที่ไหนและอย่างไร

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