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