คำแนะนำในการย้ายข้อมูลนี้จะมุ่งเน้นไปที่การใช้ 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 ก่อนหน้า โดเมนของลิงก์ (หากมี)
โดยสามารถใช้คู่มือการส่งออกข้อมูลเมตาของลิงก์แบบไดนามิก เพื่อส่งออกข้อมูลเมตาของลิงก์ที่มีอยู่และ รับข้อมูลที่แสดงข้างต้น
ภาพรวมขั้นตอนการย้ายข้อมูล
จัดสรรโดเมนใหม่ (หากยังไม่มีโดเมนที่ต้องการใช้) เพื่อโฮสต์ไฟล์การกำหนดค่า App Link / Universal Link ของคุณโดยใช้ Firebase โฮสติ้ง
สร้างและโฮสต์ไฟล์การกำหนดค่า App Link / Universal Link โดเมนโฮสติ้งของคุณ
สร้าง App Link / Universal Link ใหม่ที่ตรงกับสคีมา Deep Link ที่ใช้ในลิงก์แบบไดนามิกของ Firebase
อัปเดตแอป Android / iOS และโค้ดของแอปพลิเคชันเพื่อรับลิงก์ในรายละเอียด
การทดสอบการผสานรวม App Link / Universal Link
แทนที่ลิงก์แบบไดนามิกของ Firebase ที่เผยแพร่หรือแชร์ด้วยลิงก์แอป และ Universal Link
ขั้นตอนแรก ทั้งในขั้นตอนการย้ายข้อมูล App Link และ Universal Link ส่วนที่เหลือจะแตกต่างกันไปตามแพลตฟอร์ม ดังนั้น โปรดไปที่ส่วนของ ด้านล่างตามแพลตฟอร์มที่คุณต้องการย้ายข้อมูลก่อน
จัดสรรโดเมนใหม่เพื่อโฮสต์ไฟล์การกำหนดค่า App Link / Universal Link โดยใช้โฮสติ้งของ Firebase
เลือกโดเมน
ขั้นตอนแรกคือการเลือกโดเมนที่ต้องการใช้สำหรับ 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
` หรือ
โดเมนที่กำหนดเอง
หากต้องการ
ขั้นตอนการย้ายข้อมูลสำหรับ Android App Link
สร้างและโฮสต์ไฟล์การกำหนดค่า App Link บนโดเมนโฮสติ้งใหม่
คุณต้องโฮสต์ไฟล์การกำหนดค่าที่ช่วยให้ลิงก์แอปได้
สร้างการเชื่อมโยงที่ปลอดภัยระหว่างโดเมนที่ใช้ในลิงก์ของคุณและ
แอป สำหรับ App Link จะเป็นไฟล์ assetlinks.json
ขั้นตอนการสร้างและโฮสต์ไฟล์ assetlinks.json
ไฟล์ assetlinks.json
จะช่วยให้เราแสดงรายชื่อแอปที่ได้รับอนุญาตซึ่ง
สามารถจัดการเนื้อหาของโดเมนเว็บที่เราจะใช้สำหรับ App Link
ตัวไฟล์ assetlinks.json จะต้องโฮสต์อยู่ในรากของโดเมนเว็บ
ใต้เส้นทาง: /.well-known
โปรดทำตามขั้นตอนด้านล่างเพื่อกำหนดค่านี้ให้เสร็จสมบูรณ์
สร้างโฟลเดอร์
.well-known
ในโฟลเดอร์สาธารณะใน ไดเรกทอรีรูทของโฮสติ้งของ Firebaseสร้างไฟล์ชื่อ
assetlinks.json
ในโฟลเดอร์.well-known
คัดลอกเนื้อหาต่อไปนี้ไปยังไฟล์ 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
อัปเดตไฟล์ firebase.json เพื่อจัดทำดัชนีไฟล์สําหรับโฮสติ้ง
"headers": [ { "source": "/.well-known/assetlinks.json", "headers": [ { "key": "Content-Type", "value": "application/json" } ] } ]
ตอนนี้เรามีไฟล์ assetlinks.json แล้ว โปรดเรียกใช้
firebase deploy
เพื่อ โฮสต์การเปลี่ยนแปลงโปรดทราบว่าคุณจะต้องมี Firebase CLI ที่ติดตั้งเพื่อเรียกใช้คำสั่ง ทำให้ใช้งานได้ข้างต้น
firebase deploy --only hosting
ยืนยันไฟล์ assetlinks.json โดยไปที่
https://your-project-domain.web.app/.well-known/assetlinks.json
สร้าง App Link ใหม่ที่ตรงกับสคีมา Deep Link ที่ใช้ในลิงก์แบบไดนามิกของ Firebase
ในขั้นตอนนี้ คุณจะต้องสร้าง 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 ก่อนหน้านี้
อัปเดตแอป Android และรหัสแอปพลิเคชันเพื่อรับ Deep Link
ขั้นตอนถัดไปหลังจากเลือกโดเมน เลือกสคีมาที่ทำ Deep Link และ การย้ายข้อมูลลิงก์แบบไดนามิกของ Firebase ไปยังลิงก์แอปคือการอัปเดตแอป Android และรหัสแอปพลิเคชันเพื่อรับ Deep Link ใหม่
เราขอแนะนำให้ติดตาม ดูเอกสารประกอบเกี่ยวกับ App Link ได้ที่นี่ หรือมิฉะนั้น คู่มือ Android Studio ในการกำหนดค่าแอปเพื่อจัดการ Deep Link แต่กลับมีขั้นตอนหลักๆ ดังนี้
- ระบุกิจกรรมที่ควรจัดการ Deep Link ที่เกี่ยวข้อง
- การเพิ่มตัวกรอง Intent สำหรับกิจกรรมเหล่านั้นใน AndroidManifest.xml ของคุณ ไฟล์
- ได้รับ 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()
}
การทดสอบ App Link
คุณทดสอบลิงก์แอปที่เพิ่งสร้างได้โดยเรียกใช้แอปใน อุปกรณ์จริงหรือใน โปรแกรมจำลอง Android
คุณจะต้องสร้างลิงก์ที่คลิกได้โดยใช้โดเมนที่กำหนดค่าไว้สำหรับแอปของคุณ แล้วคลิกลิงก์ดังกล่าวเพื่อให้มั่นใจว่าลิงก์จะเปิดในแอปของคุณ นำทางคุณไปยังกิจกรรมที่ต้องการ
นอกจากนี้ คุณยังทดสอบการผสานรวม App Link โดยใช้ ตัวช่วย App Link ใน Android Studio หรือใช้คำสั่งต่อไปนี้กับ URL ของลิงก์แอปที่คุณ กำหนดค่าเพื่อให้เปิดกิจกรรมการจับคู่ได้อย่างถูกต้อง
adb shell am start -a android.intent.action.VIEW -d <your_deep_link_url>
แทนที่ลิงก์แบบไดนามิกของ Firebase ที่เผยแพร่หรือแชร์ด้วยลิงก์แอป
ขั้นตอนสุดท้ายสำหรับการย้ายข้อมูลของคุณคือการแทนที่รายการที่เผยแพร่หรือใช้ร่วมกัน ลิงก์แบบไดนามิกของ Firebase กับลิงก์แอปทุกครั้งที่ทำได้ และใช้ต่อไป App Link อีกต่อไป
การทำขั้นตอนนี้ให้เสร็จสมบูรณ์จะขึ้นอยู่กับตำแหน่งและวิธีที่คุณมี เผยแพร่ลิงก์แบบไดนามิกของ Firebase แล้ว แต่เพื่อช่วยให้คุณติดตามว่ามีลิงก์ใดอยู่บ้าง สามารถส่งออกข้อมูลเมตาของลิงก์แบบไดนามิกของ Firebase ที่มีอยู่ โปรดดู คู่มือการส่งออกข้อมูลเมตาของลิงก์แบบไดนามิก
ขั้นตอนการย้ายข้อมูลสำหรับ Universal Link บน iOS
สร้างและโฮสต์ไฟล์การกำหนดค่า Universal Link ในโดเมนโฮสติ้งใหม่
หากต้องการใช้ Universal Link คุณต้องโฮสต์ไฟล์การกำหนดค่าที่ช่วยให้
สร้างการเชื่อมโยงที่ปลอดภัยระหว่างโดเมนที่ใช้ในลิงก์ของคุณและ
แอป สำหรับ Universal Link ไฟล์นี้เป็นไฟล์ apple-app-site-association
(และ
หรือที่เรียกว่าไฟล์ AASA)
ขั้นตอนการสร้างและโฮสต์ไฟล์การเชื่อมโยง apple-app-site-association
ไฟล์ AASA ช่วยให้เราระบุรายการแอปที่ได้รับอนุญาตซึ่งจัดการได้ เนื้อหาของโดเมนเว็บที่เราจะใช้สำหรับ Universal Link AASA จะต้องโฮสต์อยู่ในรากของโดเมนเว็บภายใต้เส้นทางดังนี้ /.well-known
โปรดทำตามขั้นตอนด้านล่างเพื่อกำหนดค่านี้ให้เสร็จสมบูรณ์
สร้างไฟล์ ".well-known" ในโฟลเดอร์สาธารณะภายใน ไดเรกทอรีรูทของโฮสติ้งของ Firebase
สร้างไฟล์ชื่อ "apple-app-site-association" ภายใต้ ".well-known" โฟลเดอร์
คัดลอกเนื้อหาต่อไปนี้ไปยังไฟล์การเชื่อมโยงแอป apple-app-site โดยจดจำความหมายของแต่ละช่องด้านล่างนี้
{ "applinks": { "apps": [], "details": [ { "appId": "$TEAM_ID.com.firebase.UniversalLinks", "paths": [ "NOT /_/*", "/*" ] } ] } }
- $TEAM_ID.BundleId - ชื่อแอปพลิเคชันที่สมบูรณ์ในตัวเองซึ่งได้รับอนุญาตให้ จัดการลิงก์
อัปเดตไฟล์ firebase.json เพื่อจัดทำดัชนีไฟล์สําหรับโฮสติ้ง
"headers": [ { "source": "/.well-known/apple-app-site-association", "headers": [ { "key": "Content-Type", "value": "application/json" } ] } ]
ตอนนี้เรามีไฟล์ AASA แล้ว จึงมาติดตั้งใช้งาน Firebase เพื่อโฮสต์ การเปลี่ยนแปลง
ยืนยันไฟล์ AASA โดยไปที่ https://your-project-domain.web.app/.well-known/app-app-site-association
สร้าง Universal Link ใหม่ที่ตรงกับสคีมา Deep Link ที่ใช้ในลิงก์แบบไดนามิกของ Firebase
ในขั้นตอนนี้ คุณจะต้องสร้าง 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 ก่อนหน้านี้
อัปเดตแอป iOS และรหัสแอปพลิเคชันเพื่อรับ Deep Link
ขั้นตอนถัดไปหลังจากเลือกโดเมน เลือกสคีมาที่ทำ Deep Link และ การย้ายข้อมูลลิงก์แบบไดนามิกของ Firebase ไปยัง Universal Link คือการอัปเดต iOS โค้ดของแอปและแอปพลิเคชันเพื่อรับ Deep Link ใหม่
เราขอแนะนำให้ติดตาม ดูเอกสารประกอบของ Universal Link ที่นี่ ในการกำหนดค่าแอปเพื่อจัดการ Deep Link แต่กลับมีขั้นตอนหลักๆ ดังนี้
อัปเดตการกำหนดค่าโปรเจ็กต์เพื่ออนุญาตให้แอปจัดการ Deep Link ลิงก์จากโดเมนที่สร้างใหม่
รับ Deep Link ในรหัสแอปพลิเคชันของคุณ
ในการอัปเดตการกำหนดค่าโปรเจ็กต์เพื่อให้แอปของคุณจัดการกับ Deep Link คุณจะต้องเพิ่มโดเมนที่เชื่อมโยงเพิ่มเติมลงในโปรเจ็กต์ของคุณใน xCode สำหรับโดเมนที่คุณกำลังวางแผนจะใช้เพื่อโฮสต์ apple-app-site-การเปิดเผยข้อมูล
ซึ่งสามารถทำได้โดย
- กำลังเปิด Xcode
- การเลือกโปรเจ็กต์ในเครื่องมือนำทางไฟล์
- ไปยังขั้นตอนการลงนามและ แท็บความสามารถของการตั้งค่าโปรเจ็กต์
- เลื่อนลงไปยังส่วนโดเมนที่เชื่อมโยง
- คลิกปุ่ม + เพื่อเพิ่มโดเมนเพิ่มเติมลงในโปรเจ็กต์ใน
รูปแบบ "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 ที่เพิ่งสร้างขึ้นได้โดยการเรียกใช้แอป ใน อุปกรณ์จริงหรือเครื่องจำลอง
คุณจะต้องสร้างลิงก์ที่คลิกได้โดยใช้โดเมนที่กำหนดค่าไว้สำหรับ Universal Link จากนั้นคลิกที่ลิงก์นั้นเพื่อให้ลิงก์นั้นเปิดใน และนำทางคุณไปยังหน้าจอที่ต้องการในแอป
การรองรับแบนเนอร์แอปอัจฉริยะ
เราขอแนะนำเป็นอย่างยิ่งให้ใช้ แบนเนอร์สมาร์ทแอป เพื่อมอบประสบการณ์การใช้งานที่คล้ายกับ Firebase Dynamic ลิงก์
เมื่อใช้แบนเนอร์แอปอัจฉริยะ ระบบจะนำผู้ใช้ไปที่ App Store สำหรับแอปของคุณ หากไม่ได้ติดตั้งแอปไว้ในอุปกรณ์ของผู้ใช้ นอกจากนี้คุณยัง (ไม่บังคับ) กำหนดค่าพารามิเตอร์เพื่อส่งผ่านไปยังแอปของคุณหลังจากดาวน์โหลดแล้ว และติดตั้งเพื่อให้ผู้ใช้ได้พบกับประสบการณ์ที่ต่อเนื่อง ถ้า แอปของคุณติดตั้งไว้แล้ว ระบบจะเปิดการส่งในพารามิเตอร์ไปยัง แอปที่ช่วยนำทางผู้ใช้ไปยังเนื้อหาที่เหมาะสมตาม Smart App แบนเนอร์ที่ผู้ใช้คลิก
แทนที่ลิงก์แบบไดนามิกของ Firebase ที่เผยแพร่หรือแชร์ด้วยลิงก์แอป
ขั้นตอนสุดท้ายสำหรับการย้ายข้อมูลของคุณคือการแทนที่รายการที่เผยแพร่หรือใช้ร่วมกัน ลิงก์แบบไดนามิกของ Firebase กับ Universal Link เมื่อเป็นไปได้ และเพื่อดําเนินการต่อ โดยใช้ Universal Link ต่อไป
การทำขั้นตอนนี้ให้เสร็จสมบูรณ์จะขึ้นอยู่กับตำแหน่งและวิธีที่คุณมี เผยแพร่ลิงก์แบบไดนามิกของ Firebase แล้ว
เพื่อช่วยคุณติดตามลิงก์แบบไดนามิกของ Firebase ที่มีอยู่ซึ่งจะย้ายข้อมูลไป เราจะ การเผยแพร่คำแนะนำเกี่ยวกับวิธีส่งออกข้อมูลเมตาลิงก์แบบสั้นจาก Firebase ลิงก์แบบไดนามิก โปรดกลับมาดู เอกสารคำถามที่พบบ่อยเกี่ยวกับการเลิกใช้งานลิงก์แบบไดนามิก เพื่อดูข้อมูลอัปเดตเพิ่มเติม