หากต้องการรับ Firebase Dynamic Links ที่ คุณสร้างขึ้น คุณต้องรวม Dynamic Links SDK ไว้ในแอปของคุณ และสร้างออบเจ็กต์ firebase::dynamic_links::Listener
ที่ใช้ฟังก์ชันเสมือน OnDynamicLinkReceived
C++ SDK ใช้งานได้ทั้ง Android และ iOS โดยต้องมีการตั้งค่าเพิ่มเติมบางอย่างสำหรับแต่ละแพลตฟอร์ม
ก่อนที่คุณจะเริ่ม
ก่อนที่คุณจะสามารถใช้ Firebase Dynamic Links คุณต้อง:
ลงทะเบียนโปรเจ็กต์ C++ ของคุณและกำหนดค่าให้ใช้ Firebase
หากโปรเจ็กต์ C++ ของคุณใช้ Firebase อยู่แล้ว แสดงว่ามีการลงทะเบียนและกำหนดค่าสำหรับ Firebase แล้ว
เพิ่ม Firebase C++ SDK ให้กับโปรเจ็กต์ C++ ของคุณ
โปรดทราบว่าการเพิ่ม Firebase ลงในโปรเจ็กต์ C++ ของคุณเกี่ยวข้องกับงานทั้งใน คอนโซล Firebase และในโปรเจ็กต์ C++ ที่เปิดอยู่ (เช่น คุณดาวน์โหลดไฟล์การกำหนดค่า Firebase จากคอนโซล จากนั้นย้ายไฟล์เหล่านั้นไปยังโปรเจ็กต์ C++ ของคุณ)
เพิ่มรูปแบบ URL ที่กำหนดเอง (สำหรับ iOS เท่านั้น)
ไลบรารีไคลเอ็นต์ Firebase Dynamic Links C++ ใช้รูปแบบ URL ที่กำหนดเองบน iOS เพื่อประมวลผลลิงก์ คุณต้องเพิ่มรูปแบบ URL ที่กำหนดเองให้กับแอปของคุณเพื่อรองรับการรับลิงก์แบบไดนามิก
หากต้องการเปิดการกำหนดค่าโปรเจ็กต์ของคุณ ให้คลิกสองครั้งที่ชื่อโปรเจ็กต์ในมุมมองแผนผังด้านซ้าย
เลือกแอปของคุณจากส่วน เป้าหมาย จากนั้นเลือกแท็บ ข้อมูล จากนั้นขยายส่วน ประเภท URL
คลิกปุ่ม + จากนั้นเพิ่มรูปแบบ URL สำหรับรหัสไคลเอ็นต์ที่กลับรายการของคุณ หากต้องการค้นหาค่านี้:
เปิดไฟล์การกำหนดค่า
จากนั้นมองหาคีย์GoogleService-Info.plist REVERSED_CLIENT_ID
คัดลอกค่าของคีย์นั้น จากนั้นวางลงในกล่อง URL Schemes ในหน้าการกำหนดค่า
ปล่อยให้ช่องอื่นๆ ว่างไว้
คลิกปุ่ม + จากนั้นเพิ่มรูปแบบ URL ที่สอง อันนี้เหมือนกับรหัสบันเดิลของแอปของคุณ
ตัวอย่างเช่น หาก ID ชุดของคุณคือ
com.example.ios
ให้พิมพ์ค่านั้นลงในช่อง URL Schemesคุณสามารถค้นหา Bundle ID ของแอปได้ในแท็บ ทั่วไป ของการกำหนดค่าโปรเจ็กต์ ( Identity > Bundle Identifier )
การรับลิงค์แบบไดนามิก
สร้างและเริ่มต้นแอป
ก่อนที่คุณจะสามารถตรวจสอบลิงก์ไดนามิกที่ได้รับ คุณจะต้องสร้างและเริ่มต้นออบเจ็กต์ firebase::App
รวมไฟล์ส่วนหัวสำหรับ firebase::App
:
#include "firebase/app.h"
ส่วนถัดไปจะแตกต่างกันไปขึ้นอยู่กับแพลตฟอร์มของคุณ:
หุ่นยนต์
สร้าง firebase::App
ผ่านสภาพแวดล้อม JNI และการอ้างอิง jobject
ไปยังกิจกรรม Java เป็นอาร์กิวเมนต์:
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);
ไอโอเอส
สร้าง firebase::App
:
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));
ใช้ Listener เพื่อตรวจสอบลิงก์แบบไดนามิก
หากต้องการตรวจสอบไดนามิกลิงก์ที่ได้รับ ให้ใช้งานและใช้คลาส firebase::dynamic_links::Listener
รวมไฟล์ส่วนหัวสำหรับการรับลิงก์แบบไดนามิก:
#include "firebase/dynamic_links.h"
เริ่มต้น ไลบรารีลิงก์แบบไดนามิก:
::firebase::dynamic_links::Initialize(app, null);
สร้างอ็อบเจ็กต์ที่ใช้ firebase::dynamic_links::Listener
และจัดหาให้กับไลบรารี Dynamic Links ด้วย SetListener()
หรือส่งผ่านเป็นอาร์กิวเมนต์ที่สองเพื่อ Initialize
ในการรับลิงก์แบบไดนามิก คลาส 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()); } };