รับลิงก์แบบไดนามิกด้วย C++

หากต้องการรับ Firebase Dynamic Links ที่คุณสร้าง คุณต้องรวม SDK Dynamic Links ไว้ในแอปและสร้างออบเจ็กต์ 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 ที่กำหนดเองลงในแอปเพื่อรองรับการรับ Dynamic Links

  1. หากต้องการเปิดการกำหนดค่าโปรเจ็กต์ ให้ดับเบิลคลิกชื่อโปรเจ็กต์ในมุมมองแบบทรีทางด้านซ้าย

  2. เลือกแอปจากส่วนเป้าหมาย แล้วเลือกแท็บข้อมูล จากนั้นขยายส่วนประเภท URL

  3. คลิกปุ่ม + จากนั้นเพิ่มรูปแบบ URL สำหรับรหัสไคลเอ็นต์ที่กลับด้าน วิธีค้นหาค่านี้

    1. เปิดGoogleService-Info.plistไฟล์การกำหนดค่า แล้วมองหาคีย์ REVERSED_CLIENT_ID

    2. คัดลอกค่าของคีย์นั้น แล้ววางลงในช่องรูปแบบ URL ในหน้าการกำหนดค่า

    3. เว้นช่องอื่นๆ ว่างไว้

  4. คลิกปุ่ม + แล้วเพิ่มรูปแบบ URL ที่ 2 ซึ่งเหมือนกับรหัสชุดของแอป

    เช่น หาก Bundle ID คือ com.example.ios ให้พิมพ์ค่านั้นลงในช่องรูปแบบ URL

    คุณดูรหัสชุดของแอปได้ในแท็บทั่วไปของการกําหนดค่าโปรเจ็กต์ (ข้อมูลประจําตัว > รหัสชุด)

การรับ Dynamic Link

สร้างและเริ่มต้นแอป

ก่อนที่จะตรวจสอบ Dynamic Links ที่ได้รับ คุณจะต้องสร้างและเริ่มต้น ออบเจ็กต์ 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 เพื่อตรวจสอบ 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());
  }
};