คุณสามารถสร้างลิงก์ไดนามิกแบบสั้นหรือยาวได้ด้วย Firebase Dynamic Links API API ใช้โครงสร้างพารามิเตอร์ทางเลือกหลายตัวเพื่อสร้างลิงก์ ลิงก์แบบสั้นสามารถสร้างได้จากลิงก์แบบยาวที่สร้างไว้ก่อนหน้านี้ Firebase Dynamic Links สร้าง URL ดังต่อไปนี้:
https://example.page.link/WXYZ
C++ SDK ใช้งานได้ทั้ง Android และ iOS โดยต้องมีการตั้งค่าเพิ่มเติมบางอย่างสำหรับแต่ละแพลตฟอร์มd
ก่อนที่คุณจะเริ่ม
ก่อนที่คุณจะสามารถใช้ Firebase Dynamic Links คุณต้อง:
ลงทะเบียนโปรเจ็กต์ C++ ของคุณและกำหนดค่าให้ใช้ Firebase
หากโปรเจ็กต์ C++ ของคุณใช้ Firebase อยู่แล้ว แสดงว่ามีการลงทะเบียนและกำหนดค่าสำหรับ Firebase แล้ว
เพิ่ม Firebase C++ SDK ให้กับโปรเจ็กต์ C++ ของคุณ
โปรดทราบว่าการเพิ่ม Firebase ลงในโปรเจ็กต์ C++ ของคุณเกี่ยวข้องกับงานทั้งใน คอนโซล Firebase และในโปรเจ็กต์ C++ ที่เปิดอยู่ (เช่น คุณดาวน์โหลดไฟล์การกำหนดค่า Firebase จากคอนโซล จากนั้นย้ายไฟล์เหล่านั้นไปยังโปรเจ็กต์ C++ ของคุณ)
หุ่นยนต์
- ในคอนโซล Firebase ให้เปิดส่วน ลิงก์แบบไดนามิก
หากคุณยังไม่ได้ยอมรับข้อกำหนดในการให้บริการและตั้งค่าคำนำหน้า URI สำหรับลิงก์ไดนามิกของคุณ ให้ดำเนินการเมื่อได้รับแจ้ง
หากคุณมีคำนำหน้า URI ของลิงก์แบบไดนามิกอยู่แล้ว โปรดจดบันทึกไว้ คุณต้องระบุคำนำหน้า URI ลิงก์แบบไดนามิกเมื่อคุณสร้างลิงก์แบบไดนามิกโดยทางโปรแกรม
- แนะนำ : ระบุรูปแบบ URL ที่อนุญาตในลิงก์ในรายละเอียดและลิงก์สำรองของคุณ การทำเช่นนี้จะเป็นการป้องกันไม่ให้บุคคลที่ไม่ได้รับอนุญาตสร้างลิงก์แบบไดนามิกที่เปลี่ยนเส้นทางจากโดเมนของคุณไปยังไซต์ที่คุณไม่ได้ควบคุม ดู รูปแบบ URL ที่อนุญาตพิเศษ
ไอโอเอส
- ในคอนโซล Firebase ให้เปิดส่วน ลิงก์แบบไดนามิก
หากคุณยังไม่ได้ยอมรับข้อกำหนดในการให้บริการและตั้งค่าคำนำหน้า URI สำหรับลิงก์ไดนามิกของคุณ ให้ดำเนินการเมื่อได้รับแจ้ง
หากคุณมีคำนำหน้า URI ของลิงก์แบบไดนามิกอยู่แล้ว โปรดจดบันทึกไว้ คุณต้องระบุโดเมนลิงก์แบบไดนามิกเมื่อคุณสร้างลิงก์แบบไดนามิกโดยทางโปรแกรม
- ไลบรารีไคลเอ็นต์ Firebase Dynamic Links C++ ใช้รูปแบบ URL ที่กำหนดเองบน iOS เพื่อประมวลผลลิงก์ คุณต้องเพิ่มรูปแบบ URL ที่กำหนดเองให้กับแอปของคุณเพื่อรองรับการรับลิงก์แบบไดนามิก:
- หากต้องการเปิดการกำหนดค่าโปรเจ็กต์ของคุณ ให้คลิกสองครั้งที่ชื่อโปรเจ็กต์ในมุมมองแผนผังด้านซ้าย เลือกแอปของคุณจากส่วน เป้าหมาย จากนั้นเลือกแท็บ ข้อมูล และขยายส่วน ประเภท URL
- คลิกปุ่ม + และเพิ่มรูปแบบ URL สำหรับรหัสไคลเอ็นต์ที่กลับรายการของคุณ หากต้องการค้นหาค่านี้ ให้เปิดไฟล์การกำหนดค่า
และมองหาคีย์GoogleService-Info.plist REVERSED_CLIENT_ID
คัดลอกค่าของคีย์นั้น และวางลงในกล่อง URL Schemes บนหน้าการกำหนดค่า ปล่อยให้ช่องอื่นๆ ว่างไว้ - คลิกปุ่ม + และเพิ่มรูปแบบ URL ที่สอง อันนี้เหมือนกับรหัสบันเดิลของแอปของคุณ ตัวอย่างเช่น หาก ID ชุดของคุณคือ
com.example.ios
ให้พิมพ์ค่านั้นลงในช่อง URL Schemes คุณสามารถค้นหา Bundle ID ของแอปได้ในแท็บ ทั่วไป ของการกำหนดค่าโปรเจ็กต์ ( Identity > Bundle Identifier )
ใช้คอนโซล Firebase
หากคุณต้องการสร้างลิงก์ไดนามิกลิงก์เดียว ไม่ว่าจะเพื่อการทดสอบ หรือเพื่อให้ทีมการตลาดของคุณสร้างลิงก์ที่สามารถนำไปใช้ในโพสต์บนโซเชียลมีเดียได้อย่างง่ายดาย วิธีที่ง่ายที่สุดคือไปที่ คอนโซล Firebase และสร้างลิงก์ขึ้นมา ด้วยตนเองตามแบบฟอร์มทีละขั้นตอน
โดเมนที่กำหนดเอง
คุณสามารถควบคุมการสร้างแบรนด์ของลิงก์แบบไดนามิกได้ดียิ่งขึ้นโดยใช้โดเมนของคุณเองแทนโดเมนย่อย goo.gl
หรือ page.link
ทำตาม คำแนะนำเหล่านี้ เพื่อตั้งค่าโดเมนที่กำหนดเองสำหรับโปรเจ็กต์ของคุณ
การใช้ Firebase Dynamic Links API
สร้างและเริ่มต้นแอป
ก่อนที่คุณจะสามารถสร้างลิงก์แบบไดนามิกได้ คุณจะต้องสร้างและเริ่มต้นออบเจ็กต์ firebase::App
รวมไฟล์ส่วนหัวสำหรับ firebase::App
:
#include "firebase/app.h"
ส่วนถัดไปจะแตกต่างกันไปขึ้นอยู่กับแพลตฟอร์มของคุณ:
หุ่นยนต์
สร้าง firebase::App
ผ่านสภาพแวดล้อม JNI และการอ้างอิง jobject
ไปยังกิจกรรม Java เป็นอาร์กิวเมนต์:
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);
ไอโอเอส
สร้าง firebase::App
:
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));
เริ่มต้นไลบรารีลิงก์แบบไดนามิก
ก่อนที่จะสร้างลิงก์แบบไดนามิก คุณต้อง เริ่มต้น ไลบรารีลิงก์แบบไดนามิกก่อน:
::firebase::dynamic_links::Initialize(app, null);
การสร้างไดนามิกลิงก์แบบยาวจากพารามิเตอร์
หากต้องการสร้างลิงก์แบบไดนามิก ให้สร้างอ็อบเจ็กต์ DynamicLinkComponents ตั้งค่าสมาชิกทางเลือกใดๆ สำหรับการกำหนดค่าเพิ่มเติม และส่งผ่านไปยัง dynamic_links::GetShortLink
หรือ dynamic_links::GetLongLink
ตัวอย่างขั้นต่ำต่อไปนี้จะสร้างลิงก์ไดนามิกขนาดยาวไปยัง https://www.example.com/ ที่เปิดขึ้นด้วยแอป Android ของคุณ com.example.android.package_name และแอป iOS com.example.ios:
firebase::dynamic_links::IOSParameters ios_parameters("com.example.ios"); firebase::dynamic_links::AndroidParameters android_parameters( "com.example.android.package_name"); firebase::dynamic_links::DynamicLinkComponents components( "https://www.example.com/", "example.page.link"); components.android_parameters = &android_parameters; components.ios_parameters = &ios_parameters; firebase::dynamic_links::GeneratedDynamicLink long_link = firebase::dynamic_links::GetLongLink(components);
การสร้างไดนามิกลิงก์แบบสั้น
หากต้องการสร้างลิงก์ไดนามิกแบบสั้น ให้ส่งลิงก์แบบยาวที่สร้างไว้ก่อนหน้านี้ไปที่ GetShortLink
หรือสร้าง DynamicLinkComponents
แบบเดียวกับด้านบน
GetShortLink
เลือกใช้พารามิเตอร์การกำหนดค่า DynamicLinkOptions
พิเศษด้วย PathLength
; สิ่งนี้ช่วยให้คุณควบคุมวิธีการสร้างลิงค์ได้ การสร้างลิงก์แบบสั้นจำเป็นต้องมีคำขอเครือข่ายไปยังแบ็กเอนด์ Firebase ดังนั้น GetShortLink
จึงไม่ซิงโครนัส โดยส่งคืน Future<GeneratedLink>
ตัวอย่างเช่น:
firebase::dynamic_links::DynamicLinkOptions short_link_options; short_link_options.path_length = firebase::dynamic_links::kPathLengthShort; firebase::Future<firebase::dynamic_links::GeneratedDynamicLink> result = firebase::dynamic_links::GetShortLink(components, short_link_options);
หากโปรแกรมของคุณมีลูปการอัปเดตที่ทำงานเป็นประจำ (เช่น 30 หรือ 60 ครั้งต่อวินาที) คุณสามารถตรวจสอบผลลัพธ์ได้หนึ่งครั้งต่อการอัพเดต:
if (result.status() == firebase::kFutureStatusComplete) { if (result.error() == firebase::dynamic_links::kErrorCodeSuccess) { firebase::dynamic_links::GeneratedDynamicLink link = *result.result(); printf("Create short link succeeded: %s\n", link.url.c_str()); } else { printf("Created short link failed with error '%s'\n", result.error_message()); } }