Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

ที่จะได้รับ Firebase แบบไดนามิกลิงค์ที่ คุณสร้าง คุณต้องมีแบบไดนามิกลิงค์ SDK ใน app ของคุณและสร้าง 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 Dynamic Links C++ ใช้โครงร่าง URL ที่กำหนดเองบน iOS เพื่อประมวลผลลิงก์ คุณต้องเพิ่มรูปแบบ URL ที่กำหนดเองให้กับแอปของคุณเพื่อรองรับการรับลิงก์แบบไดนามิก

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

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

  3. คลิกที่ปุ่ม + แล้วเพิ่มโครงการ URL สำหรับรหัสลูกค้าแบบผันกลับของคุณ หากต้องการค้นหาค่านี้:

    1. เปิด GoogleService-Info.plist แฟ้มการกำหนดค่าแล้วมองหา REVERSED_CLIENT_ID สำคัญ

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

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

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

    ตัวอย่างเช่นถ้ารหัสชุดของคุณ com.example.ios พิมพ์ค่าที่เป็นแบบแผน URL กล่อง

    คุณสามารถค้นหารหัสชุดของแอปในแท็บทั่วไปของการกำหนดค่าโครงการ (เอกลักษณ์> 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

ในการตรวจสอบสำหรับเชื่อมโยงแบบไดนามิกได้รับการดำเนินการและใช้ firebase::dynamic_links::Listener ระดับ

รวมไฟล์ส่วนหัวสำหรับการรับแบบไดนามิกลิงค์:

#include "firebase/dynamic_links.h"

เริ่มต้น ห้องสมุดแบบไดนามิกลิงค์:

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

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

ที่จะได้รับแบบไดนามิกลิงค์ชั้นฟังของคุณจะต้องใช้ 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());
  }
};