Catch up on highlights from Firebase at Google I/O 2023. Learn more

สร้างลิงก์แบบไดนามิกบน iOS

คุณสามารถสร้างลิงก์แบบไดนามิกแบบสั้นหรือแบบยาวได้ด้วย Firebase Dynamic Links Builder API API นี้ยอมรับทั้งลิงก์ไดนามิกแบบยาวหรืออ็อบเจ็กต์ที่มีพารามิเตอร์ลิงก์ไดนามิก และส่งคืน URL ดังตัวอย่างต่อไปนี้:

https://example.com/link/WXYZ
https://example.page.link/WXYZ

ข้อกำหนดเบื้องต้น

ก่อนที่คุณจะเริ่มต้น อย่าลืม เพิ่ม Firebase ในโครงการ iOS ของคุณ

ใช้ Swift Package Manager เพื่อติดตั้งและจัดการการอ้างอิง Firebase

  1. ใน Xcode เมื่อโปรเจ็กต์แอปของคุณเปิดอยู่ ให้ไปที่ File > Add Packages
  2. เมื่อได้รับแจ้ง ให้เพิ่มที่เก็บ Firebase Apple platforms SDK:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. เลือกไลบรารีลิงก์ไดนามิก
  5. เพื่อประสบการณ์ที่ดีที่สุดกับลิงก์แบบไดนามิก เราขอแนะนำ ให้เปิดใช้ Google Analytics ในโครงการ Firebase และเพิ่ม Firebase SDK สำหรับ Google Analytics ลงในแอปของคุณ คุณสามารถเลือกห้องสมุดที่ไม่มีการรวบรวม IDFA หรือมีการรวบรวม IDFA
  6. เมื่อเสร็จแล้ว Xcode จะเริ่มแก้ไขและดาวน์โหลดการอ้างอิงของคุณโดยอัตโนมัติในเบื้องหลัง

ตอนนี้ ทำตามขั้นตอนการกำหนดค่าบางอย่าง:

  1. ในคอนโซล Firebase ให้เปิดส่วน ลิงก์แบบไดนามิก
  2. หากคุณยังไม่ได้ยอมรับข้อกำหนดในการให้บริการและตั้งค่าคำนำหน้า URI สำหรับลิงก์แบบไดนามิก ให้ดำเนินการเมื่อได้รับแจ้ง

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

  3. แนะนำ : ระบุรูปแบบ URL ที่อนุญาตในลิงก์ในรายละเอียดและลิงก์สำรอง การทำเช่นนี้เป็นการป้องกันไม่ให้บุคคลที่ไม่ได้รับอนุญาตสร้างลิงก์แบบไดนามิกที่เปลี่ยนเส้นทางจากโดเมนของคุณไปยังไซต์ที่คุณไม่ได้ควบคุม ดู อนุญาตรูปแบบ URL เฉพาะ
  4. ตรวจสอบให้แน่ใจว่า App Store ID ของแอพและคำนำหน้า ID แอพของคุณระบุไว้ในการตั้งค่าแอพของคุณ หากต้องการดูและแก้ไขการตั้งค่าแอป ให้ไปที่ หน้าการตั้งค่า โปรเจ็กต์ Firebase แล้วเลือกแอป iOS

    ยืนยันว่าโปรเจ็กต์ Firebase ของคุณได้รับการกำหนดค่าอย่างถูกต้องให้ใช้ลิงก์แบบไดนามิกในแอป iOS ของคุณโดยเปิดไฟล์ apple-app-site-association ที่โฮสต์บนโดเมนลิงก์แบบไดนามิกของคุณ Firebase จะให้บริการไฟล์ apple-app-site-association จากรูทของโดเมนรวมถึงไดเร็กทอรี .well-known ตัวอย่างเช่น:

        https://example.com/apple-app-site-association
        https://example.com/.well-known/apple-app-site-association
        

    หากแอปของคุณเชื่อมต่ออยู่ ไฟล์ apple-app-site-association จะมีการอ้างอิงถึงคำนำหน้า App ID และ Bundle ID ของแอป ตัวอย่างเช่น:

    {"applinks":{"apps":[],"details":[{"appID":"1234567890.com.example.ios","paths":["/*"]}]}}

    หากคุณสมบัติ details ว่างเปล่า ตรวจสอบอีกครั้งว่าคุณระบุคำนำหน้า ID แอปของคุณ โปรดทราบว่าคำนำหน้า App ID ของคุณอาจไม่เหมือนกับ Team ID ของคุณ

เพิ่ม Firebase ในแอปของคุณ

  1. นำเข้าโมดูล FirebaseCore ใน UIApplicationDelegate ของคุณ รวมถึง โมดูล Firebase อื่นๆ ที่ตัวแทนแอปของคุณใช้ ตัวอย่างเช่น หากต้องการใช้ Cloud Firestore และการรับรองความถูกต้อง:

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    สวิฟต์

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    วัตถุประสงค์-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. กำหนดค่าอินสแตนซ์ที่ใช้ร่วมกันของ FirebaseApp ใน application(_:didFinishLaunchingWithOptions:) วิธีการ:

    SwiftUI

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    สวิฟต์

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    วัตถุประสงค์-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. หากคุณใช้ SwiftUI คุณต้องสร้างตัวแทนแอปพลิเคชันและแนบกับโครงสร้าง App ของคุณผ่าน UIApplicationDelegateAdaptor หรือ NSApplicationDelegateAdaptor คุณต้องปิดใช้งานการ swizzling ของผู้รับมอบสิทธิ์แอปด้วย สำหรับข้อมูลเพิ่มเติม โปรดดู คำแนะนำ SwiftUI

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          

ใช้คอนโซล Firebase

หากคุณต้องการสร้างลิงก์ไดนามิกลิงก์เดียว ไม่ว่าจะเพื่อวัตถุประสงค์ในการทดสอบ หรือสำหรับทีมการตลาดของคุณเพื่อสร้างลิงก์ที่สามารถใช้ในบางอย่างได้อย่างง่ายดาย เช่น โพสต์บนโซเชียลมีเดีย วิธีที่ง่ายที่สุดคือไปที่ คอนโซล Firebase และสร้างลิงก์ขึ้นมา ด้วยตนเองตามแบบฟอร์มทีละขั้นตอน

ใช้ iOS Builder API

คุณสามารถใช้ iOS Builder API เพื่อสร้างลิงก์ไดนามิกจากพารามิเตอร์ หรือเพื่อย่อลิงก์ไดนามิกที่ยาวให้สั้นลง

หากต้องการสร้างลิงก์แบบไดนามิก ให้สร้างวัตถุ DynamicLinkComponents ใหม่ และระบุพารามิเตอร์ลิงก์แบบไดนามิกโดยการตั้งค่าคุณสมบัติที่สอดคล้องกันของวัตถุ จากนั้น รับลิงก์แบบยาวจากคุณสมบัติ url ของวัตถุ หรือรับลิงก์แบบสั้นโดยเรียก shorten()

ตัวอย่างขั้นต่ำต่อไปนี้สร้างลิงก์แบบไดนามิกยาวไปยัง https://www.example.com/my-page ที่เปิดขึ้นพร้อมกับแอป iOS ของคุณบน iOS และแอป com.example.android บน Android:

สวิฟต์

หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมใช้งานบนเป้าหมาย macOS, Mac Catalyst, tvOS หรือ watchOS
guard let link = URL(string: "https://www.example.com/my-page") else { return }
let dynamicLinksDomainURIPrefix = "https://example.com/link"
let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPRefix)
linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios")
linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android")

guard let longDynamicLink = linkBuilder.url else { return }
print("The long URL is: \(longDynamicLink)")

วัตถุประสงค์-C

หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมใช้งานบนเป้าหมาย macOS, Mac Catalyst, tvOS หรือ watchOS
NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"];
NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link";
FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc]
                                         initWithLink:link
                                               domainURIPrefix:dynamicLinksDomainURIPrefix];
linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc]
                             initWithBundleID:@"com.example.ios"];
linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc]
                                 initWithPackageName:@"com.example.android"];

NSLog(@"The long URL is: %@", linkBuilder.url);

หากต้องการสร้าง DynamicLink แบบสั้น ให้สร้าง DynamicLinkComponents ด้วยวิธีเดียวกัน จากนั้นเรียก shorten()

การสร้างลิงก์แบบสั้นจำเป็นต้องมีการเรียกผ่านเครือข่าย ดังนั้นแทนที่จะส่งคืนลิงก์โดยตรง shorten() จะยอมรับตัวจัดการการทำให้เสร็จสมบูรณ์ ซึ่งจะถูกเรียกใช้เมื่อคำขอเสร็จสมบูรณ์ ตัวอย่างเช่น:

สวิฟต์

หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมใช้งานบนเป้าหมาย macOS, Mac Catalyst, tvOS หรือ watchOS
linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

วัตถุประสงค์-C

หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมใช้งานบนเป้าหมาย macOS, Mac Catalyst, tvOS หรือ watchOS
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

ตามค่าเริ่มต้น ลิงก์ไดนามิกแบบสั้นจะถูกสร้างขึ้นโดยมีคำต่อท้ายลิงก์ 17 อักขระ ซึ่งทำให้ไม่น่าเป็นไปได้อย่างยิ่งที่ใครจะคาดเดาลิงก์ไดนามิกที่ถูกต้องได้ หากในกรณีการใช้งานของคุณ ไม่มีอะไรเสียหายหากมีคนคาดเดาลิงก์สั้นได้สำเร็จ คุณอาจต้องการสร้างส่วนต่อท้ายที่ยาวเท่าที่จำเป็นเท่านั้น ซึ่งคุณสามารถทำได้โดยการตั้งค่าคุณสมบัติ dynamicLinkComponentsOptions :

สวิฟต์

หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมใช้งานบนเป้าหมาย macOS, Mac Catalyst, tvOS หรือ watchOS
linkBuilder.options = DynamicLinkComponentsOptions()
linkBuilder.options.pathLength = .short
linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

วัตถุประสงค์-C

หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมใช้งานบนเป้าหมาย macOS, Mac Catalyst, tvOS หรือ watchOS
linkBuilder.dynamicLinkComponentsOptions = [[FIRDynamicLinkComponentsOptions alloc] init];
linkBuilder.dynamicLinkComponentsOptions.pathLength = FIRShortDynamicLinkPathLengthShort;
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

คุณสามารถใช้ Dynamic Link Builder API เพื่อสร้างลิงก์แบบไดนามิกด้วยพารามิเตอร์ที่รองรับ ดู การอ้างอิง API สำหรับรายละเอียด

ตัวอย่างต่อไปนี้สร้างลิงก์แบบไดนามิกด้วยชุดพารามิเตอร์ทั่วไปหลายชุด:

สวิฟต์

หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมใช้งานบนเป้าหมาย macOS, Mac Catalyst, tvOS หรือ watchOS
guard let link = URL(string: "https://www.example.com/my-page") else { return }
let dynamicLinksDomainURIPrefix = "https://example.com/link"
let linkBuilder = DynamicLinkComponents(link: link, domainURIPRefix: dynamicLinksDomainURIPrefix)

linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios")
linkBuilder.iOSParameters.appStoreID = "123456789"
linkBuilder.iOSParameters.minimumAppVersion = "1.2.3"

linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android")
linkBuilder.androidParameters.minimumVersion = 123

linkBuilder.analyticsParameters = DynamicLinkGoogleAnalyticsParameters(source: "orkut",
                                                                       medium: "social",
                                                                       campaign: "example-promo")

linkBuilder.iTunesConnectParameters = DynamicLinkItunesConnectAnalyticsParameters()
linkBuilder.iTunesConnectParameters.providerToken = "123456"
linkBuilder.iTunesConnectParameters.campaignToken = "example-promo"

linkBuilder.socialMetaTagParameters = DynamicLinkSocialMetaTagParameters()
linkBuilder.socialMetaTagParameters.title = "Example of a Dynamic Link"
linkBuilder.socialMetaTagParameters.descriptionText = "This link works whether the app is installed or not!"
linkBuilder.socialMetaTagParameters.imageURL = "https://www.example.com/my-image.jpg"

guard let longDynamicLink = linkBuilder.url else { return }
print("The long URL is: \(longDynamicLink)")

วัตถุประสงค์-C

หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมใช้งานบนเป้าหมาย macOS, Mac Catalyst, tvOS หรือ watchOS
NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"];
NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link";
FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc]
                                         initWithLink:link
                                         domainURIPrefix:dynamicLinksDomainURIPrefix];

linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc]
                             initWithBundleID:@"com.example.ios"];
linkBuilder.iOSParameters.appStoreID = @"123456789";
linkBuilder.iOSParameters.minimumAppVersion = @"1.2.3";

linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc]
                                 initWithPackageName:@"com.example.android"];
linkBuilder.androidParameters.minimumVersion = 123;

linkBuilder.analyticsParameters = [[FIRDynamicLinkGoogleAnalyticsParameters alloc]
                                   initWithSource:@"orkut"
                                           medium:@"social"
                                         campaign:@"example-promo"];

linkBuilder.iTunesConnectParameters = [[FIRDynamicLinkItunesConnectAnalyticsParameters alloc] init];
linkBuilder.iTunesConnectParameters.providerToken = @"123456";
linkBuilder.iTunesConnectParameters.campaignToken = @"example-promo";

linkBuilder.socialMetaTagParameters = [[FIRDynamicLinkSocialMetaTagParameters alloc] init];
linkBuilder.socialMetaTagParameters.title = @"Example of a Dynamic Link";
linkBuilder.socialMetaTagParameters.descriptionText = @"This link works whether the app is installed or not!";
linkBuilder.socialMetaTagParameters.imageURL = @"https://www.example.com/my-image.jpg";

NSLog(@"The long URL is: %@", linkBuilder.url);

คุณสามารถตั้งค่าพารามิเตอร์ลิงก์ไดนามิกด้วยวัตถุและคุณสมบัติต่อไปนี้:

ส่วนประกอบ DynamicLink
ลิงค์

ลิงก์แอปของคุณจะเปิดขึ้น ระบุ URL ที่แอปของคุณสามารถจัดการได้ โดยทั่วไปคือเนื้อหาหรือเพย์โหลดของแอป ซึ่งจะเริ่มต้นตรรกะเฉพาะแอป (เช่น การให้เครดิตผู้ใช้ด้วยคูปองหรือการแสดงหน้าจอต้อนรับ) ลิงก์นี้ต้องเป็น URL ที่มีรูปแบบถูกต้อง มีการเข้ารหัส URL อย่างถูกต้อง ใช้ HTTP หรือ HTTPS อย่างใดอย่างหนึ่ง และไม่สามารถเป็นลิงก์แบบไดนามิกอื่นได้

โดเมนURIPrefix คำนำหน้า URL ลิงก์แบบไดนามิก ซึ่งพบได้ในคอนโซล Firebase โดเมนลิงก์แบบไดนามิกมีลักษณะดังนี้:
https://example.com/link
https://example.page.link
พารามิเตอร์ DynamicLink Android
URL สำรอง ลิงก์สำหรับเปิดเมื่อไม่ได้ติดตั้งแอป ระบุสิ่งนี้เพื่อทำสิ่งอื่นนอกเหนือจากการติดตั้งแอปของคุณจาก Play Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บบนอุปกรณ์เคลื่อนที่ หรือแสดงหน้าโปรโมตสำหรับแอปของคุณ
รุ่นขั้นต่ำ versionCode ของเวอร์ชันขั้นต่ำของแอปของคุณที่สามารถเปิดลิงก์ได้ หากแอปที่ติดตั้งเป็นเวอร์ชันเก่า ระบบจะนำผู้ใช้ไปที่ Play Store เพื่ออัปเกรดแอป
พารามิเตอร์ DynamicLink IOS
รหัสแอปสโตร์ รหัส App Store ของแอปของคุณ ใช้เพื่อส่งผู้ใช้ไปยัง App Store เมื่อไม่ได้ติดตั้งแอป
URL สำรอง ลิงก์สำหรับเปิดเมื่อไม่ได้ติดตั้งแอป ระบุสิ่งนี้เพื่อทำสิ่งอื่นนอกเหนือจากการติดตั้งแอปของคุณจาก App Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บบนมือถือ หรือแสดงหน้าโปรโมชันสำหรับแอปของคุณ
รูปแบบที่กำหนดเอง รูปแบบ URL ที่กำหนดเองของแอป หากกำหนดเป็นอย่างอื่นที่ไม่ใช่ ID Bundle ของแอป
URL สำรองของ iPad ลิงก์สำหรับเปิดบน iPad เมื่อไม่ได้ติดตั้งแอป ระบุสิ่งนี้เพื่อทำสิ่งอื่นนอกเหนือจากการติดตั้งแอปของคุณจาก App Store เมื่อไม่ได้ติดตั้งแอป เช่น เปิดเนื้อหาเวอร์ชันเว็บ หรือแสดงหน้าโปรโมชันสำหรับแอปของคุณ
iPadBundleID รหัสบันเดิลของแอป iOS ที่จะใช้บน iPad เพื่อเปิดลิงก์ แอปต้องเชื่อมต่อกับโครงการของคุณจากหน้าภาพรวมของคอนโซล Firebase
AppVersion ขั้นต่ำ หมายเลขเวอร์ชัน ของเวอร์ชันขั้นต่ำของแอปที่สามารถเปิดลิงก์ได้ แฟล็กนี้จะถูกส่งผ่านไปยังแอปของคุณเมื่อเปิดขึ้น และแอปของคุณต้องตัดสินใจว่าจะทำอย่างไรกับมัน
DynamicLinkNavigationInfoParameters
เปิดใช้งานการบังคับเปลี่ยนเส้นทางแล้ว หากตั้งค่าเป็น '1' ให้ข้ามหน้าแสดงตัวอย่างแอปเมื่อเปิดลิงก์ไดนามิก และเปลี่ยนเส้นทางไปยังแอปหรือร้านค้าแทน หน้าแสดงตัวอย่างแอป (เปิดใช้งานตามค่าเริ่มต้น) สามารถส่งผู้ใช้ไปยังปลายทางที่เหมาะสมที่สุดได้อย่างน่าเชื่อถือมากขึ้นเมื่อพวกเขาเปิดลิงก์แบบไดนามิกในแอป อย่างไรก็ตาม หากคุณคาดหวังให้เปิดลิงก์ไดนามิกเฉพาะในแอพที่สามารถเปิดลิงก์ไดนามิกได้อย่างน่าเชื่อถือโดยไม่มีหน้านี้ คุณสามารถปิดใช้งานได้โดยใช้พารามิเตอร์นี้ พารามิเตอร์นี้จะส่งผลต่อลักษณะการทำงานของ Dynamic Link บน iOS เท่านั้น
DynamicLinkSocialMetaTagParameters
ชื่อ ชื่อเรื่องที่จะใช้เมื่อมีการแชร์ลิงก์แบบไดนามิกในโพสต์โซเชียล
คำอธิบายข้อความ คำอธิบายที่จะใช้เมื่อมีการแชร์ลิงก์แบบไดนามิกในโพสต์โซเชียล
URL รูปภาพ URL ของรูปภาพที่เกี่ยวข้องกับลิงก์นี้ รูปภาพควรมีขนาดอย่างน้อย 300x200 px และน้อยกว่า 300 KB
DynamicLinkGoogleAnalyticsParameters
แหล่งที่มา
ปานกลาง
แคมเปญ
ภาคเรียน
เนื้อหา
พารามิเตอร์การวิเคราะห์ของ Google Play พารามิเตอร์เหล่านี้ ( utm_source , utm_medium , utm_campaign , utm_term , utm_content ) จะถูกส่งต่อไปยัง Play Store และต่อท้ายเพย์โหลดลิงก์
DynamicLinkItunesConnectAnalyticsParameters
โทเค็นผู้ให้บริการ
โทเค็นพันธมิตร
โทเค็นแคมเปญ
พารามิเตอร์การวิเคราะห์ iTunes Connect พารามิเตอร์เหล่านี้ ( pt , at , ct ) จะถูกส่งผ่านไปยัง App Store

หากต้องการย่อลิงก์แบบไดนามิกแบบยาว ให้ส่งลิงก์แบบไดนามิกแบบยาวเพื่อย่อ shortenURL(url:options:) พร้อมกับวัตถุ DynamicLinkComponentsOptions หากคุณต้องการสร้างลิงก์ที่มีคำต่อท้ายสั้นๆ:

สวิฟต์

หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมใช้งานบนเป้าหมาย macOS, Mac Catalyst, tvOS หรือ watchOS
DynamicLinkComponents.shortenURL(url: longLinkUrl, options: nil) { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

วัตถุประสงค์-C

หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมใช้งานบนเป้าหมาย macOS, Mac Catalyst, tvOS หรือ watchOS
[FIRDynamicLinkComponents shortenURL:longLinkUrl
                             options:nil
                          completion:^(NSURL * _Nullable shortURL,
                                       NSArray<NSString *> * _Nullable warnings,
                                       NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];

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

อย่างไรก็ตาม นักพัฒนาซอฟต์แวร์ที่ใช้รูปแบบ URL ที่กำหนดเองเพื่อวัตถุประสงค์อื่นอยู่แล้วอาจต้องการใช้รูปแบบ URL ที่กำหนดเองเดียวกันนี้สำหรับลิงก์แบบไดนามิกด้วย หากคุณอยู่ในสถานการณ์นี้ คุณสามารถระบุรูปแบบ URL อื่นสำหรับ Firebase Dynamic Links โดยทำตามขั้นตอนเหล่านี้:

  1. เมื่อตั้งค่าแอปของคุณ ตรวจสอบให้แน่ใจว่าคุณได้ระบุรูปแบบ URL เริ่มต้นที่จะใช้โดยแอปพลิเคชันของคุณก่อนที่จะกำหนดค่าอินสแตนซ์ที่ใช้ร่วมกันของ FirebaseApp :

    สวิฟต์

    หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมใช้งานบนเป้าหมาย macOS, Mac Catalyst, tvOS หรือ watchOS
    func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplication
                       .LaunchOptionsKey: Any]?) -> Bool {
      // Set deepLinkURLScheme to the custom URL scheme you defined in your
      // Xcode project.
      FirebaseOptions.defaultOptions()?.deepLinkURLScheme = customURLScheme
      FirebaseApp.configure()
    
      return true
    }
    

    วัตถุประสงค์-C

    หมายเหตุ: ผลิตภัณฑ์ Firebase นี้ไม่พร้อมใช้งานบนเป้าหมาย macOS, Mac Catalyst, tvOS หรือ watchOS
    - (BOOL)application:(UIApplication *)application
        didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
      // Set deepLinkURLScheme to the custom URL scheme you defined in your
      // Xcode project.
      [FIROptions defaultOptions].deepLinkURLScheme = CUSTOM_URL_SCHEME;
      [FIRApp configure];
    
      return YES;
    }
  2. เมื่อใดก็ตามที่คุณสร้างลิงก์แบบไดนามิก คุณจะต้องระบุรูปแบบ URL ที่กำหนดเองที่แอปของคุณใช้ คุณสามารถทำได้ผ่านคอนโซล Firebase ตั้งค่า customScheme ใน Builder API ระบุพารามิเตอร์ ius ใน URL ของคุณ หรือส่งพารามิเตอร์ iosCustomScheme ไปยัง REST API

ขั้นตอนถัดไป

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

หากต้องการรับลิงก์แบบไดนามิกในแอปของคุณ โปรดดูเอกสารประกอบสำหรับ iOS , Android , C++ และ Unity