Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

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

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

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

เริ่มต้น ไลบรารี Dynamic Links:

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

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

เริ่มต้น ไลบรารี Dynamic Links:

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