Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

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

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

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

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

  3. คลิกปุ่ม + จากนั้นเพิ่มรูปแบบ URL สำหรับรหัสไคลเอ็นต์ที่ย้อนกลับของคุณ เพื่อหาค่านี้:

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

    2. คัดลอกค่าของคีย์นั้น จากนั้นวางลงในกล่อง URL Schemes ในหน้าการกำหนดค่า

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

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

    ตัวอย่างเช่น หากรหัสบันเดิลของคุณคือ com.example.ios ให้พิมพ์ค่านั้นลงในช่อง URL Schemes

    คุณสามารถค้นหา Bundle ID ของแอปได้ในแท็บ ทั่วไป ของการกำหนดค่าโปรเจ็กต์ ( Identity > Bundle Identifier )

การรับไดนามิกลิงค์

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

ก่อนที่คุณจะสามารถตรวจสอบลิงก์แบบไดนามิกที่ได้รับ คุณจะต้องสร้างและเริ่มต้นวัตถุ 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"

เริ่มต้น ไลบรารีไดนามิกลิงก์:

::firebase::dynamic_links::Initialize(app, null);

สร้างวัตถุที่ใช้ firebase::dynamic_links::Listener และจัดหาให้กับไลบรารี Dynamic Links ด้วย SetListener() หรือส่งผ่านเป็นอาร์กิวเมนต์ที่สองเพื่อ Initialize

ในการรับ Dynamic Links คลาส Listener ของคุณต้องใช้ฟังก์ชันเสมือน OnDynamicLinkReceived โดยการแทนที่เมธอดนี้ คุณสามารถรับลิงก์ในรายละเอียด หากได้รับ

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());
  }
};