คู่มือการย้ายข้อมูลนี้มุ่งเน้นการใช้App Link และUniversal Link โดยอาจใช้ Firebase Hosting เพื่อโฮสต์ไฟล์การเชื่อมโยงแอปกับเว็บไซต์
การย้ายข้อมูลนี้จะแทนที่ฟีเจอร์ลิงก์แบบไดนามิกของ Firebase ต่อไปนี้
ฟีเจอร์ | ลิงก์แบบไดนามิกของ Firebase | App Link / 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 เคยทำได้)
- นำผู้ใช้ไปยังร้านค้าที่ถูกต้องสำหรับอุปกรณ์เพื่อดาวน์โหลดและ ติดตั้งแอป
- มอบการเดินทางของผู้ใช้ที่ต่อเนื่องหลังจากดาวน์โหลด ติดตั้ง และเปิดแอปเป็นครั้งแรก
โปรดทราบความแตกต่างในลักษณะการทำงานและฟังก์ชันการทำงานของ App Links / Universal Links เหล่านี้เมื่อเทียบกับลิงก์แบบไดนามิกของ Firebase ที่ระบุไว้ ในตารางด้านบน
ก่อนเริ่มต้น
ลิงก์แบบไดนามิกของ Firebase ใช้ลิงก์ของแอป (ใน Android) และลิงก์สากล (ใน iOS) ในการติดตั้งใช้งานพื้นฐานของตัวเองเพื่อให้ฟังก์ชันการทำงานของ Deep Link หลังจากติดตั้งแอปแล้ว
คู่มือนี้จะอธิบายวิธีสร้าง App Link และ Universal Link ของคุณเอง โดยใช้ Firebase Hosting เพื่อแทนที่ฟังก์ชันการทํางานส่วนนั้นที่ได้รับจาก ลิงก์แบบไดนามิกของ Firebase ขณะย้ายข้อมูลลิงก์แบบไดนามิกของ Firebase ไปยังโซลูชันการย้ายข้อมูล App Link / Universal Link ใหม่
คุณจะต้องมีข้อมูลต่อไปนี้เพื่อทำการย้ายข้อมูลให้เสร็จสมบูรณ์
- ลิงก์แบบไดนามิกของ Firebase ที่คุณต้องการย้ายข้อมูล
- พารามิเตอร์ของ URL แบบ Deep Link ที่รวมอยู่ใน Dynamic Link
- โดเมนที่คุณวางแผนจะใช้แทนโดเมนลิงก์แบบไดนามิกของ Firebase ก่อนหน้า (หากมี)
คุณสามารถใช้คู่มือการส่งออกข้อมูลเมตาของ Dynamic Links เพื่อส่งออกข้อมูลเมตาของลิงก์ที่มีอยู่และ รับข้อมูลที่ระบุไว้ข้างต้น
ภาพรวมขั้นตอนการย้ายข้อมูล
จัดสรรโดเมนใหม่ (หากคุณยังไม่มีโดเมนที่ต้องการใช้) เพื่อโฮสต์ไฟล์การกำหนดค่า App Link / Universal Link โดยใช้ Firebase Hosting
สร้างและโฮสต์ไฟล์การกำหนดค่า App Link / Universal Link ใน โดเมนโฮสติ้ง
สร้าง App Link / Universal Link ใหม่ที่ตรงกับรูปแบบ Deep Link ที่ใช้ในลิงก์แบบไดนามิกของ Firebase
อัปเดตแอป Android / iOS และโค้ดแอปพลิเคชันเพื่อรับ Deep Link
การทดสอบการผสานรวมลิงก์แอป / ลิงก์สากล
แทนที่ลิงก์แบบไดนามิกของ 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 / ลิงก์สากลได้ด้วย
ตั้งค่าโฮสติ้งของ Firebase
จากนั้นคุณจะต้องตั้งค่าและกำหนดค่าอินสแตนซ์ Firebase Hosting
เมื่อตั้งค่าอินสแตนซ์ Firebase Hosting เสร็จแล้ว คุณจะมีโดเมนที่คล้ายกับ 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 ได้โดยใช้ Keytool
ดูวิธีการเพิ่มเติมในการทำขั้นตอนนี้ให้เสร็จสมบูรณ์ได้ที่ส่วนนี้ของเอกสารประกอบเกี่ยวกับ App Links
หรือคุณจะใช้ ผู้ช่วย 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 ปกติที่ตรงกับโดเมนใหม่ที่คุณสร้างขึ้นสำหรับ App Links
เช่น สมมติว่าคุณมีลิงก์แบบไดนามิกของ 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 Dynamic 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 ไปยัง App Link คือการอัปเดตแอป Android และโค้ดแอปพลิเคชันเพื่อรับ Deep Link ใหม่
เราขอแนะนำให้ทำตามเอกสารประกอบ App Link ฉบับเต็มที่นี่ หรือคำแนะนำของ Android Studio ในการกำหนดค่าแอปเพื่อจัดการ Deep Link แต่ขั้นตอนหลักๆ มีดังนี้
- ระบุว่ากิจกรรมใดควรจัดการ Deep Link ที่เกี่ยวข้อง
- การเพิ่มตัวกรอง Intent สำหรับกิจกรรมเหล่านั้นในไฟล์ AndroidManifest.xml
- การรับ 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" ด้วย ซึ่งจะช่วยให้คุณกำหนดแอปเป็น ตัวแฮนเดิลเริ่มต้นสำหรับลิงก์ประเภทนี้ได้
สุดท้าย คุณจะต้องเพิ่มโค้ดใน MainActivity เพื่อดึงข้อมูล Deep Link และใช้ข้อมูลดังกล่าวเพื่อขับเคลื่อนประสบการณ์การใช้งาน Deep Link ในแอป ซึ่งคล้ายกับตรรกะที่คุณอาจเขียนโค้ดไว้แล้วในแอปเมื่อผสานรวมกับ 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
คุณทดสอบ App Link ที่เพิ่งสร้างได้โดยการเรียกใช้แอปใน อุปกรณ์จริงหรือใน โปรแกรมจำลอง Android
คุณจะต้องสร้างลิงก์ที่คลิกได้โดยใช้โดเมนที่กำหนดค่าไว้สำหรับ App Links จากนั้นคลิกลิงก์ดังกล่าวเพื่อให้แน่ใจว่าลิงก์จะเปิดขึ้นในแอปและ นำคุณไปยังกิจกรรมที่ต้องการ
หรือคุณจะทดสอบการผสานรวม App Link โดยใช้ผู้ช่วย App Link ใน Android Studio หรือใช้คำสั่งต่อไปนี้สำหรับ URL ของ App Link ที่คุณ กำหนดค่าไว้เพื่อให้แน่ใจว่า URL จะเปิดใช้งานที่ตรงกันอย่างถูกต้องก็ได้
adb shell am start -a android.intent.action.VIEW -d <your_deep_link_url>
แทนที่ลิงก์แบบไดนามิกของ Firebase ที่เผยแพร่หรือแชร์ด้วย App Link
ขั้นตอนสุดท้ายของการย้ายข้อมูลคือการแทนที่ลิงก์แบบไดนามิกของ Firebase ที่เผยแพร่หรือแชร์ด้วย App Link ทุกที่ที่เป็นไปได้ และใช้ 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 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 deploy เพื่อโฮสต์การเปลี่ยนแปลง
ยืนยันไฟล์ 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 แต่ละรายการที่ต้องการย้ายข้อมูลไปใช้ลิงก์ของแอป / ลิงก์สากล และจำลองสคีมา 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)
}
โค้ดด้านบนจะลบล้างวิธีการเรียกกลับของ 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 ให้แก่ผู้ใช้
เมื่อใช้แบนเนอร์แอปอัจฉริยะ ระบบจะนำผู้ใช้ไปยัง App Store สำหรับข้อมูลผลิตภัณฑ์ในแอป หากผู้ใช้ยังไม่ได้ติดตั้งแอปในอุปกรณ์ นอกจากนี้ คุณยัง กำหนดค่าพารามิเตอร์เพื่อส่งไปยังแอปหลังจากที่ดาวน์โหลด และติดตั้งแล้ว เพื่อให้ผู้ใช้เดินทางต่อได้ หากติดตั้งแอปอยู่แล้ว แอปจะเปิดขึ้นพร้อมส่งพารามิเตอร์ไปยังแอปของคุณเพื่อช่วยนำผู้ใช้ไปยังเนื้อหาที่เหมาะสมตาม Smart App Banner ที่ผู้ใช้คลิก
แทนที่ลิงก์แบบไดนามิกของ Firebase ที่เผยแพร่หรือแชร์ด้วย App Link
ขั้นตอนสุดท้ายของการย้ายข้อมูลคือการแทนที่ลิงก์แบบไดนามิกของ Firebase ที่เผยแพร่หรือแชร์ ด้วยลิงก์ทั่วไปทุกที่ที่เป็นไปได้ และใช้ลิงก์ทั่วไปต่อไป ในอนาคต
การทำขั้นตอนนี้ให้เสร็จสมบูรณ์จะแตกต่างกันไปขึ้นอยู่กับว่าคุณเผยแพร่ลิงก์แบบไดนามิกของ Firebase ที่ใดและอย่างไร
เราจะเผยแพร่คำแนะนำเกี่ยวกับวิธีส่งออกข้อมูลเมตาของลิงก์แบบสั้นจากลิงก์แบบไดนามิกของ Firebase เพื่อช่วยคุณติดตามลิงก์แบบไดนามิกของ Firebase ที่มีอยู่ซึ่งจะย้ายข้อมูล โปรดกลับมาดูข้อมูลอัปเดตเพิ่มเติมได้ที่เอกสารคำถามที่พบบ่อยเกี่ยวกับการเลิกใช้งาน Dynamic Links