Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Buat Tautan Dinamis di iOS

Anda dapat membuat Dynamic Links pendek atau panjang dengan Firebase Dynamic Links Builder API. API ini menerima Tautan Dinamis panjang atau objek yang berisi parameter Tautan Dinamis, dan mengembalikan URL seperti contoh berikut:

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

Prasyarat

Sebelum memulai, pastikan untuk menambahkan Firebase ke proyek iOS Anda .

Gunakan Swift Package Manager untuk menginstal dan mengelola dependensi Firebase.

  1. Di Xcode, dengan proyek aplikasi Anda terbuka, arahkan ke File > Add Packages .
  2. Saat diminta, tambahkan repositori SDK platform Apple Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Pilih pustaka Tautan Dinamis.
  5. Untuk pengalaman optimal dengan Dynamic Links, sebaiknya aktifkan Google Analytics di project Firebase Anda dan tambahkan Firebase SDK untuk Google Analytics ke aplikasi Anda. Anda dapat memilih perpustakaan tanpa koleksi IDFA atau dengan koleksi IDFA.
  6. Setelah selesai, Xcode akan secara otomatis mulai menyelesaikan dan mengunduh dependensi Anda di latar belakang.

Sekarang, lakukan beberapa langkah konfigurasi:

  1. Di konsol Firebase, buka bagian Tautan Dinamis .
  2. Jika Anda belum menyetujui persyaratan layanan dan menyetel awalan URI untuk Dynamic Links Anda, lakukan saat diminta.

    Jika Anda sudah memiliki prefiks URI Dynamic Links, catatlah. Anda harus menyediakannya saat membuat Tautan Dinamis secara terprogram.

  3. Direkomendasikan : Tentukan pola URL yang diizinkan di tautan dalam dan tautan cadangan Anda. Dengan melakukannya, Anda mencegah pihak yang tidak berwenang membuat Tautan Dinamis yang mengalihkan dari domain Anda ke situs yang tidak Anda kontrol. Lihat Mengizinkan pola URL tertentu .
  4. Pastikan ID App Store aplikasi dan awalan ID Aplikasi Anda ditentukan di setelan aplikasi. Untuk melihat dan mengedit setelan aplikasi Anda, buka halaman Setelan project Firebase Anda dan pilih aplikasi iOS Anda.

    Konfirmasikan bahwa project Firebase Anda dikonfigurasi dengan benar untuk menggunakan Dynamic Links di aplikasi iOS dengan membuka file apple-app-site-association yang dihosting di domain Dynamic Links Anda. Firebase akan menyajikan file apple-app-site-association dari root domain serta subdirektori .well-known . Sebagai contoh:

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

    Jika aplikasi Anda terhubung, file apple-app-site-association berisi referensi ke awalan ID Aplikasi dan ID bundel aplikasi Anda. Sebagai contoh:

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

    Jika details properti kosong, periksa kembali apakah Anda telah menentukan awalan App ID Anda. Perhatikan bahwa awalan ID Aplikasi Anda mungkin tidak sama dengan ID Tim Anda.

Tambahkan Firebase ke aplikasi Anda

  1. Impor modul FirebaseCore di UIApplicationDelegate Anda, serta modul Firebase lainnya yang digunakan oleh delegasi aplikasi Anda. Misalnya, untuk menggunakan Cloud Firestore dan Authentication:

    SwiftUI

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

    Cepat

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Konfigurasikan instance bersama FirebaseApp dalam metode application(_:didFinishLaunchingWithOptions:) delegasi aplikasi Anda:

    SwiftUI

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

    Cepat

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

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Jika Anda menggunakan SwiftUI, Anda harus membuat delegasi aplikasi dan melampirkannya ke struktur App Anda melalui UIApplicationDelegateAdaptor atau NSApplicationDelegateAdaptor . Anda juga harus menonaktifkan swizzling delegasi aplikasi. Untuk informasi selengkapnya, lihat petunjuk SwiftUI .

    SwiftUI

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

Gunakan konsol Firebase

Jika Anda ingin membuat satu Tautan Dinamis, baik untuk tujuan pengujian, atau untuk tim pemasaran agar mudah membuat tautan yang dapat digunakan dalam sesuatu seperti postingan media sosial, cara paling sederhana adalah dengan mengunjungi konsol Firebase dan membuatnya secara manual mengikuti formulir langkah demi langkah.

Gunakan iOS Builder API

Anda dapat menggunakan API Pembuat iOS untuk membuat Tautan Dinamis dari parameter, atau untuk mempersingkat Tautan Dinamis yang panjang.

Untuk membuat Dynamic Link, buat objek DynamicLinkComponents baru dan tentukan parameter Dynamic Link dengan menyetel properti objek yang sesuai. Kemudian, dapatkan tautan panjang dari properti url objek atau dapatkan tautan pendek dengan memanggil shorten() .

Contoh minimal berikut membuat Tautan Dinamis panjang ke https://www.example.com/my-page yang terbuka dengan aplikasi iOS Anda di iOS dan aplikasi com.example.android di Android:

Cepat

Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, tvOS, atau 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)")

Objective-C

Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, tvOS, atau 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);

Untuk membuat Dynamic Link singkat, buat DynamicLinkComponents dengan cara yang sama, lalu panggil shorten() .

Membuat tautan pendek memerlukan panggilan jaringan, jadi alih-alih mengembalikan tautan secara langsung, shorten() menerima penangan penyelesaian, yang dipanggil saat permintaan selesai. Sebagai contoh:

Cepat

Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, tvOS, atau watchOS.
linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

Objective-C

Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, tvOS, atau watchOS.
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

Secara default, Tautan Dinamis pendek dibuat dengan akhiran tautan 17 karakter yang membuatnya sangat tidak mungkin seseorang dapat menebak Tautan Dinamis yang valid. Jika, untuk kasus penggunaan Anda, tidak ada salahnya seseorang berhasil menebak tautan pendek, Anda mungkin lebih suka membuat sufiks yang hanya selama diperlukan untuk menjadi unik, yang dapat Anda lakukan dengan menyetel properti dynamicLinkComponentsOptions :

Cepat

Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, tvOS, atau 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)")
}

Objective-C

Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, tvOS, atau 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);
}];
      

Anda dapat menggunakan Dynamic Link Builder API untuk membuat Dynamic Links dengan salah satu parameter yang didukung. Lihat referensi API untuk detailnya.

Contoh berikut membuat Dynamic Link dengan beberapa kumpulan parameter umum:

Cepat

Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, tvOS, atau 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)")

Objective-C

Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, tvOS, atau 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);

Anda dapat menyetel parameter Dynamic Link dengan objek dan properti berikut:

Komponen DynamicLink
tautan

Tautan yang akan dibuka aplikasi Anda. Tentukan URL yang dapat ditangani aplikasi Anda, biasanya konten atau payload aplikasi, yang memulai logika khusus aplikasi (seperti mengkredit pengguna dengan kupon atau menampilkan layar selamat datang). Tautan ini harus berupa URL dengan format yang baik, berenkode URL dengan benar, menggunakan HTTP atau HTTPS, dan tidak boleh berupa Tautan Dinamis lainnya.

domainURIAwalan Awalan URL Dynamic Link Anda, yang dapat Anda temukan di Firebase console. Domain Dynamic Link terlihat seperti contoh berikut:
https://example.com/link
https://example.page.link
DynamicLinkAndroidParameters
fallbackURL Tautan untuk membuka saat aplikasi tidak diinstal. Tetapkan ini untuk melakukan sesuatu selain menginstal aplikasi Anda dari Play Store saat aplikasi tidak diinstal, seperti membuka konten versi web seluler, atau menampilkan halaman promosi untuk aplikasi Anda.
versi minimum versionCode dari versi minimum aplikasi Anda yang dapat membuka tautan. Jika aplikasi yang diinstal adalah versi yang lebih lama, pengguna akan dibawa ke Play Store untuk memutakhirkan aplikasi.
DynamicLinkIOSParameters
appStoreID ID App Store aplikasi Anda, yang digunakan untuk mengirim pengguna ke App Store saat aplikasi belum diinstal
fallbackURL Tautan untuk membuka saat aplikasi tidak diinstal. Tetapkan ini untuk melakukan sesuatu selain menginstal aplikasi Anda dari App Store saat aplikasi tidak diinstal, seperti membuka konten versi web seluler, atau menampilkan halaman promosi untuk aplikasi Anda.
customScheme Skema URL khusus aplikasi Anda, jika ditentukan sebagai sesuatu selain ID bundel aplikasi Anda
iPadFallbackURL Tautan untuk membuka di iPad saat aplikasi tidak diinstal. Tetapkan ini untuk melakukan sesuatu selain menginstal aplikasi Anda dari App Store saat aplikasi tidak diinstal, seperti membuka konten versi web, atau menampilkan halaman promosi untuk aplikasi Anda.
iPadBundleID ID paket aplikasi iOS yang akan digunakan di iPad untuk membuka tautan. Aplikasi harus terhubung ke proyek Anda dari halaman Ikhtisar konsol Firebase.
minimumAppVersion Nomor versi versi minimum aplikasi Anda yang dapat membuka tautan. Bendera ini diteruskan ke aplikasi Anda saat dibuka, dan aplikasi Anda harus memutuskan apa yang harus dilakukan dengannya.
DynamicLinkNavigationInfoParameters
forcedRedirectEnabled Jika disetel ke '1', lewati halaman pratinjau aplikasi saat Dynamic Link dibuka, alih-alih alihkan ke aplikasi atau toko. Halaman pratinjau aplikasi (diaktifkan secara default) dapat mengarahkan pengguna ke tujuan yang paling tepat dengan lebih andal saat mereka membuka Dynamic Links di aplikasi; namun, jika Anda mengharapkan Tautan Dinamis hanya dibuka di aplikasi yang dapat membuka Tautan Dinamis dengan andal tanpa laman ini, Anda dapat menonaktifkannya dengan parameter ini. Parameter ini hanya akan memengaruhi perilaku Dynamic Link di iOS.
Parameter DynamicLinkSocialMetaTag
judul Judul yang akan digunakan saat Dynamic Link dibagikan di postingan sosial.
descriptionText Deskripsi yang akan digunakan saat Dynamic Link dibagikan di postingan sosial.
imageURL URL ke gambar yang terkait dengan tautan ini. Gambar harus berukuran minimal 300x200 px, dan kurang dari 300 KB.
DynamicLinkGoogleAnalyticsParameters
sumber
medium
kampanye
ketentuan
isi
Parameter analitik Google Play. Parameter ini ( utm_source , utm_medium , utm_campaign , utm_term , utm_content ) diteruskan ke Play Store serta ditambahkan ke payload tautan.
DynamicLinkItunesConnectAnalyticsParameters
providerToken
affiliateToken
Token kampanye
Parameter analitik iTunes Connect. Parameter ini ( pt , at , ct ) diteruskan ke App Store.

Untuk memperpendek Dynamic Link yang panjang, teruskan Dynamic Link yang panjang ke shortenURL(url:options:) bersama dengan objek DynamicLinkComponentsOptions jika Anda ingin membuat link dengan akhiran pendek:

Cepat

Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, tvOS, atau 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)")
}

Objective-C

Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, tvOS, atau 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);
}];

Secara default, Dynamic Links menggunakan pengidentifikasi bundel aplikasi Anda sebagai skema URL yang diperlukan untuk membuka aplikasi Anda. Kami merekomendasikan untuk tetap menggunakan nilai default ini agar penerapan Anda tetap sederhana.

Namun, pengembang yang sudah menggunakan skema URL khusus untuk tujuan lain mungkin juga ingin menggunakan skema URL khusus yang sama untuk Tautan Dinamis mereka. Jika Anda berada dalam situasi ini, Anda dapat menentukan skema URL yang berbeda untuk Firebase Dynamic Links Anda dengan mengikuti langkah berikut:

  1. Saat menyiapkan aplikasi, pastikan Anda menentukan skema URL default yang akan digunakan oleh aplikasi Anda sebelum mengonfigurasi instance bersama FirebaseApp :

    Cepat

    Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, tvOS, atau 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
    }
    

    Objective-C

    Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, tvOS, atau 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. Setiap kali Anda membuat Dynamic Link apa pun, Anda harus menentukan skema URL khusus yang digunakan aplikasi Anda. Anda dapat melakukannya melalui konsol Firebase, menyetel customScheme di Builder API, menentukan parameter ius di URL Anda, atau mengirim parameter iosCustomScheme ke REST API

Langkah selanjutnya

Setelah membuat Dynamic Links, Anda perlu menyiapkan aplikasi untuk menerima Dynamic Links dan mengarahkan pengguna ke tempat yang tepat di aplikasi Anda setelah pengguna membukanya.

Untuk menerima Tautan Dinamis di aplikasi Anda, lihat dokumentasi untuk iOS , Android , C++ , dan Unity .