หากต้องการรับFirebase Dynamic Links ที่ คุณสร้างขึ้น,
คุณต้องรวม SDK ของ Dynamic Links ไว้ในแอปและสร้าง
firebase::dynamic_links::Listener
ออบเจ็กต์ที่ใช้
OnDynamicLinkReceived
ฟังก์ชันเสมือน
SDK สำหรับ C++ ใช้งานได้ทั้งใน Android และ iOS โดยต้องมีการตั้งค่าเพิ่มเติมสำหรับแต่ละแพลตฟอร์ม
ก่อนเริ่มต้น
คุณต้องดำเนินการต่อไปนี้ก่อนจึงจะใช้ Firebase Dynamic Links, ได้
ลงทะเบียนโปรเจ็กต์ C++ และกำหนดค่าให้ใช้ Firebase
หากโปรเจ็กต์ C++ ใช้ Firebase อยู่แล้ว แสดงว่าโปรเจ็กต์ได้ลงทะเบียนและกำหนดค่าสำหรับ Firebase แล้ว
เพิ่ม Firebase C++ SDK ลงในโปรเจ็กต์ C++
โปรดทราบว่าการเพิ่ม Firebase ลงในโปรเจ็กต์ C++ เกี่ยวข้องกับงานทั้งใน Firebase คอนโซล และในโปรเจ็กต์ C++ ที่เปิดอยู่ (เช่น คุณดาวน์โหลด ไฟล์การกำหนดค่า Firebase จากคอนโซล แล้วย้ายไฟล์เหล่านั้นไปยังโปรเจ็กต์ C++)
เพิ่ม URL Scheme ที่กำหนดเอง (สำหรับ iOS เท่านั้น)
ไลบรารีของไคลเอ็นต์ C++ ของ Firebase Dynamic Links ใช้ URL Scheme ที่กำหนดเองใน iOS เพื่อ ประมวลผลลิงก์ คุณต้องเพิ่ม URL Scheme ที่กำหนดเองลงในแอปเพื่อรองรับการรับ Dynamic Links
หากต้องการเปิดการกำหนดค่าโปรเจ็กต์ ให้ดับเบิลคลิกชื่อโปรเจ็กต์ในมุมมองแบบต้นไม้ทางด้านซ้าย
เลือกแอปจากส่วนเป้าหมาย แล้วเลือกแท็บข้อมูล จากนั้นขยายส่วนประเภท URL
คลิกปุ่ม + แล้วเพิ่ม URL Scheme สำหรับรหัสไคลเอ็นต์แบบย้อนกลับ วิธีค้นหาค่านี้
เปิดไฟล์การกำหนดค่า
แล้วมองหาคีย์GoogleService-Info.plist REVERSED_CLIENT_IDคัดลอกค่าของคีย์นั้น แล้ววางลงในช่องURL Scheme ในหน้าการกำหนดค่า
ปล่อยให้ช่องอื่นๆ ว่างไว้
คลิกปุ่ม + แล้วเพิ่ม URL Scheme ที่ 2 ซึ่งจะเหมือนกับรหัสชุดของแอป
ตัวอย่างเช่น หากรหัสชุดคือ
com.example.iosให้พิมพ์ค่าดังกล่าวลงในช่องURL Schemeคุณดูรหัสชุดของแอปได้ในแท็บทั่วไป ของการกำหนดค่าโปรเจ็กต์ (ข้อมูลประจำตัว > รหัสชุด)
การรับ Dynamic Link
สร้างและเริ่มต้นแอป
คุณต้องสร้างและเริ่มต้น
ออบเจ็กต์ firebase::App ก่อนจึงจะตรวจสอบDynamic Linksที่ได้รับได้
ใส่ไฟล์ส่วนหัวสำหรับ firebase::App ดังนี้
#include "firebase/app.h"
ส่วนถัดไปจะแตกต่างกันไปตามแพลตฟอร์ม
Android
สร้าง firebase::App โดยส่งผ่านสภาพแวดล้อม JNI และการอ้างอิง jobject ไปยัง Java Activity เป็นอาร์กิวเมนต์
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);
iOS
สร้าง firebase::App ดังนี้
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));
ใช้ Listener เพื่อตรวจสอบ Dynamic Links
หากต้องการตรวจสอบDynamic Linkที่ได้รับ ให้ใช้คลาส
firebase::dynamic_links::Listener
ใส่ไฟล์ส่วนหัวสำหรับการรับ Dynamic Links ดังนี้
#include "firebase/dynamic_links.h"
เริ่มต้นไลบรารีDynamic Links ดังนี้
::firebase::dynamic_links::Initialize(app, null);
สร้างออบเจ็กต์ที่ใช้
firebase::dynamic_links::Listener,
และระบุออบเจ็กต์ดังกล่าวให้กับไลบรารีของDynamic Linksด้วย
SetListener(),
หรือส่งผ่านเป็นอาร์กิวเมนต์ที่ 2 ไปยัง
Initialize
หากต้องการรับ Dynamic Links คลาส Listener ต้องใช้
OnDynamicLinkReceived
ฟังก์ชันเสมือน การลบล้างเมธอดจะช่วยให้คุณรับ Deep Link ได้หากมีการรับ
class Listener : public firebase::dynamic_links::Listener { public: // Called on the client when a dynamic link arrives. void OnDynamicLinkReceived( const firebase::dynamic_links::DynamicLink* dynamic_link) override { printf("Received link: %s", dynamic_link->url.c_str()); } };