คู่มือการย้ายข้อมูลนี้มุ่งเน้นที่การใช้ App Link และ Universal Link รวมถึงการใช้ Firebase Hosting เพื่อโฮสต์ไฟล์การเชื่อมโยงแอปกับเว็บไซต์ (ไม่บังคับ)
การย้ายข้อมูลนี้จะแทนที่ฟีเจอร์ลิงก์แบบไดนามิกของ Firebase ต่อไปนี้
ฟีเจอร์ | ลิงก์แบบไดนามิกของ Firebase | App Link / Universal Link |
---|---|---|
นำผู้ใช้ไปยัง Store ที่ถูกต้องสำหรับอุปกรณ์จากคลิกลิงก์เพียงครั้งเดียว | ★ | |
มอบเส้นทางที่ต่อเนื่องให้ผู้ใช้หลังจากดาวน์โหลดและติดตั้งแอปโดยใช้ 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 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 ขณะที่ย้ายลิงก์แบบไดนามิกของ Firebase ไปยังโซลูชันการย้ายข้อมูล App Link / Universal Link ใหม่
คุณจะต้องมีข้อมูลต่อไปนี้เพื่อย้ายข้อมูลให้เสร็จสมบูรณ์
- ลิงก์แบบไดนามิกของ Firebase ที่คุณตั้งใจจะย้ายข้อมูล
- พารามิเตอร์ของ URL ของ Deep Link ที่รวมอยู่ในลิงก์แบบไดนามิก
- โดเมนที่คุณวางแผนจะใช้แทนโดเมนลิงก์แบบไดนามิกของ Firebase ก่อนหน้านี้ (หากมี)
คุณสามารถใช้คู่มือการส่งออกข้อมูลเมตาของลิงก์แบบไดนามิกเพื่อส่งออกข้อมูลเมตาของลิงก์ที่มีอยู่และรับข้อมูลที่ระบุไว้ข้างต้น
ภาพรวมขั้นตอนการย้ายข้อมูล
จัดสรรโดเมนใหม่ (หากยังไม่มีโดเมนที่ต้องการใช้) เพื่อโฮสต์ไฟล์การกําหนดค่า App Link / Universal Link โดยใช้โฮสติ้งของ Firebase
สร้างและโฮสต์ไฟล์การกําหนดค่า App Link / Universal Link ในโดเมนโฮสติ้ง
สร้างลิงก์ App Link / Universal Link ใหม่ที่ตรงกับสคีมา Deep Link ที่ใช้ในลิงก์แบบไดนามิกของ Firebase
อัปเดตแอป Android / iOS และโค้ดของแอปพลิเคชันเพื่อรับลิงก์ในรายละเอียด
การทดสอบการผสานรวมลิงก์แอป / ลิงก์สากล
แทนที่ลิงก์แบบไดนามิกของ Firebase ที่เผยแพร่หรือแชร์ด้วย App Link และ Universal Link
ขั้นตอนแรกจะเหมือนกันสำหรับทั้งขั้นตอนการย้ายข้อมูล App Link หรือ Universal Link ส่วนที่เหลือจะแตกต่างกันไปตามแพลตฟอร์ม ดังนั้นโปรดไปที่ส่วนต่างๆ ของคำแนะนำด้านล่างตามแพลตฟอร์มที่คุณต้องการย้ายข้อมูลก่อน
จัดสรรโดเมนใหม่เพื่อโฮสต์ไฟล์การกําหนดค่า App Link / Universal Link โดยใช้โฮสติ้งของ Firebase
เลือกโดเมน
ขั้นตอนแรกคือเลือกโดเมนที่ต้องการใช้สำหรับ App Link/Universal Link นี่จะเป็นโดเมนที่จะใช้สำหรับลิงก์ใหม่ ที่คุณจะแชร์กับผู้ใช้ของคุณ
หากคุณใช้Firebase Hosting ระบบจะจัดสรรโดเมนย่อยของโปรเจ็กต์ที่มีรูปแบบ 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 คุณต้องโฮสต์ไฟล์การกําหนดค่าที่ช่วยสร้างการเชื่อมโยงที่ปลอดภัยระหว่างโดเมนที่ใช้ในลิงก์กับแอปของคุณ สําหรับ App Link ไฟล์นี้จะเป็นไฟล์ assetlinks.json
ขั้นตอนการสร้างและโฮสต์ไฟล์ assetlinks.json
ไฟล์ assetlinks.json
ช่วยให้เราสามารถระบุรายการแอปที่ได้รับอนุญาตซึ่งสามารถจัดการเนื้อหาของโดเมนเว็บที่เราจะใช้สำหรับ App Link ไฟล์
assetlinks.json เองต้องโฮสต์ที่รูทของโดเมนเว็บภายใต้เส้นทาง /.well-known
ทําตามขั้นตอนด้านล่างเพื่อกําหนดค่าให้เสร็จสมบูรณ์
สร้างโฟลเดอร์
.well-known
ใต้โฟลเดอร์สาธารณะในไดเรกทอรีรูทของ Firebase Hostingสร้างไฟล์ชื่อ
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
หรือจะใช้App Links Assistant ใน 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 Dynamic Link
ในขั้นตอนนี้ คุณจะต้องสร้าง 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 รายการก่อนหน้า
อัปเดตแอป Android และโค้ดแอปพลิเคชันเพื่อรับ Deep Link
ขั้นตอนถัดไปหลังจากเลือกโดเมน เลือกสคีมา Deep Link และย้ายข้อมูล Firebase Dynamic Link ไปยัง App Link คือการอัปเดตแอป Android และโค้ดแอปพลิเคชันเพื่อรับ Deep Link ใหม่
เราขอแนะนำให้อ่านเอกสารประกอบ App Link ทั้งหมดที่นี่ หรืออ่านคู่มือ Android Studio เกี่ยวกับการกำหนดค่าแอปให้จัดการ Deep Link แต่ขั้นตอนหลักๆ มีดังนี้
- ระบุกิจกรรมที่ควรจัดการ Deep Link ที่เกี่ยวข้อง
- การเพิ่มตัวกรอง Intent สําหรับกิจกรรมเหล่านั้นในไฟล์ AndroidManifest.xml
- การรับ 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
คุณสามารถทดสอบ App Link ที่เพิ่งสร้างขึ้นได้โดยเรียกใช้แอปในอุปกรณ์จริงหรือใน Android Emulator
คุณจะต้องสร้างลิงก์ที่คลิกได้โดยใช้โดเมนที่กําหนดค่าไว้สําหรับ App ของคุณ จากนั้นคลิกลิงก์นั้นเพื่อให้แน่ใจว่าลิงก์จะเปิดขึ้นในแอปและนําคุณไปยังกิจกรรมที่ต้องการ
นอกจากนี้ คุณยังทดสอบการผสานรวมลิงก์แอปได้โดยใช้ผู้ช่วยของลิงก์แอปใน Android Studio หรือใช้คำสั่งต่อไปนี้กับ URL ของลิงก์แอปที่คุณกำหนดค่าไว้เพื่อให้มั่นใจว่าจะเปิดกิจกรรมที่ตรงกันได้อย่างถูกต้อง
adb shell am start -a android.intent.action.VIEW -d <your_deep_link_url>
แทนที่ลิงก์แบบไดนามิกของ Firebase ที่เผยแพร่หรือแชร์ด้วย App Link
ขั้นตอนสุดท้ายในการย้ายข้อมูลคือการแทนที่ Firebase Dynamic Link ที่เผยแพร่หรือแชร์ด้วย App Link ทุกครั้งที่เป็นไปได้ และใช้ App Link ต่อไปในอนาคต
การทำขั้นตอนนี้ให้เสร็จสมบูรณ์จะแตกต่างกันไปตามตำแหน่งและวิธีที่คุณเผยแพร่ลิงก์แบบไดนามิกของ Firebase แต่คุณสามารถส่งออกข้อมูลเมตาของลิงก์แบบไดนามิกของ Firebase ที่มีอยู่ได้ เพื่อช่วยให้คุณสามารถติดตามว่ามีลิงก์ใดบ้าง ดูคู่มือการส่งออกข้อมูลเมตาของลิงก์แบบไดนามิก
ขั้นตอนการย้ายข้อมูลสำหรับ Universal Link ใน iOS
สร้างและโฮสต์ไฟล์การกําหนดค่า Universal Links ในโดเมนโฮสติ้งใหม่
หากต้องการใช้ Universal Link คุณต้องโฮสต์ไฟล์การกําหนดค่าที่ช่วยสร้างการเชื่อมโยงที่ปลอดภัยระหว่างโดเมนที่ใช้ในลิงก์กับแอปของคุณ สำหรับ Universal Link ไฟล์ดังกล่าวคือไฟล์ apple-app-site-association
(หรือที่เรียกว่าไฟล์ AASA)
ขั้นตอนการสร้างและโฮสต์ไฟล์ apple-app-site-association
ไฟล์ AASA ช่วยให้เราสามารถระบุรายการแอปที่ได้รับอนุญาตซึ่งจัดการเนื้อหาของโดเมนเว็บที่เราจะใช้สำหรับ Universal Link ได้ ไฟล์ AASA ต้องฝากไว้ในรูทของโดเมนเว็บตามเส้นทาง /.well-known
ทําตามขั้นตอนด้านล่างเพื่อกําหนดค่าให้เสร็จสมบูรณ์
สร้างโฟลเดอร์ ".well-known" ใต้โฟลเดอร์สาธารณะในไดเรกทอรีรูทของ Firebase Hosting
สร้างไฟล์ชื่อ "apple-app-site-association" ในโฟลเดอร์ ".well-known"
คัดลอกเนื้อหาต่อไปนี้ลงในไฟล์ apple-app-site-association โดยสังเกตความหมายของช่องแต่ละช่องด้านล่าง
{ "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
สร้างลิงก์สากลใหม่ซึ่งตรงกับสคีมา 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 และจะใช้พารามิเตอร์นี้เป็นพารามิเตอร์ลิงก์สากลสําหรับแอป
คุณจะต้องทําขั้นตอนนี้ซ้ำสําหรับ 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 รายการก่อนหน้า
อัปเดตแอป iOS และโค้ดแอปพลิเคชันเพื่อรับ Deep Link
ขั้นตอนถัดไปหลังจากเลือกโดเมน เลือกสคีมาการทำ Deep Link และย้ายข้อมูลลิงก์แบบไดนามิกของ Firebase ไปยังลิงก์สากลคือการอัปเดตแอป iOS และโค้ดแอปพลิเคชันเพื่อรับ Deep Link ใหม่
เราขอแนะนําให้อ่านเอกสารประกอบ Universal Link ทั้งหมดที่นี่เกี่ยวกับการกําหนดค่าแอปให้จัดการ Deep Link แต่ขั้นตอนหลักๆ มีดังนี้
อัปเดตการกำหนดค่าโปรเจ็กต์เพื่อให้แอปจัดการ Deep Link จากโดเมนที่สร้างใหม่ได้
รับ Deep Link ในรหัสแอปพลิเคชันของคุณ
หากต้องการอัปเดตการกำหนดค่าโปรเจ็กต์เพื่อให้แอปจัดการ Deep Link ได้ คุณจะต้องเพิ่มโดเมนที่เชื่อมโยงอีกรายการลงในโปรเจ็กต์ใน XCode สำหรับโดเมนที่คุณวางแผนจะใช้เพื่อโฮสต์ไฟล์ apple-app-site-associate
ซึ่งทําได้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้
- การเปิด 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 ของ Deep Link หากมี
ตอนนี้เราจะเรียกใช้เมธอด showReceivedUrl
เดียวกันจากคลาส SceneDelegate ด้วย เนื่องจากหากแอปเปิดอยู่แล้วเมื่อผู้ใช้คลิก Universal Link ระบบจะเรียกใช้การเรียกกลับ 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 Banner ที่ผู้ใช้คลิก
แทนที่ลิงก์แบบไดนามิกของ Firebase ที่เผยแพร่หรือแชร์ด้วย App Link
ขั้นตอนสุดท้ายในการย้ายข้อมูลคือการแทนที่ลิงก์แบบไดนามิกของ Firebase ที่เผยแพร่หรือแชร์ด้วยลิงก์ทั่วไปเมื่อเป็นไปได้ และการใช้ลิงก์ทั่วไปต่อไป
การดำเนินการขั้นตอนนี้จะแตกต่างกันไปโดยขึ้นอยู่กับตำแหน่งและวิธีเผยแพร่ Firebase Dynamic Links
เราจะเผยแพร่คู่มือเกี่ยวกับวิธีส่งออกข้อมูลเมตาของลิงก์แบบสั้นจากลิงก์แบบไดนามิกของ Firebase เพื่อช่วยให้คุณติดตามลิงก์แบบไดนามิกของ Firebase ที่มีอยู่เพื่อย้ายข้อมูลได้ โปรดกลับมาดูข้อมูลอัปเดตเพิ่มเติมในเอกสารคำถามที่พบบ่อยเกี่ยวกับการเลิกใช้งานลิงก์แบบไดนามิก