Wyślij wiadomość testową do aplikacji Apple w tle

Aby zacząć korzystać z funkcji FCM, opracuj najprostszy przypadek użycia: wysyłanie testowe powiadomienie z Kreator powiadomień na urządzenie, którego używasz do programowania gdy aplikacja działa na urządzeniu w tle. Na tej stronie znajdziesz listę wszystkich kroków, które pozwolą Ci to osiągnąć – od konfiguracji po weryfikację. może on obejmować czynności wykonane już, jeśli masz skonfigurowaną aplikację kliencką Apple za FCM.

Dodaj Firebase do projektu Apple

Ta sekcja obejmuje zadania, które mogły zostać wykonane, jeśli zostały już włączone z innymi funkcjami Firebase w przypadku Twojej aplikacji. W przypadku usługi FCM Trzeba prześlij klucz uwierzytelniania APNs i zarejestruj się na zdalne powiadomienia.

Wymagania wstępne

  • Zainstaluj następujące elementy:

    • Xcode 15.2 lub nowsza wersja
  • Sprawdź, czy Twój projekt spełnia te wymagania:

    • Twój projekt musi być kierowany na te wersje platformy lub nowsze:
      • iOS 13
      • macOS 10.15
      • tvOS 13
      • watchOS 7
  • skonfigurować fizyczne urządzenie Apple do uruchamiania aplikacji; i wykonaj te zadania:

    • Uzyskaj klucz uwierzytelniania Apple Push Notification do swojego Konto dewelopera Apple.
    • Włącz powiadomienia push w XCode w sekcji App > (Aplikacja >) Możliwości.

Jeśli nie masz jeszcze projektu Xcode i chcesz tylko wypróbować Firebase możesz pobrać nasze krótkie wprowadzenia.

Tworzenie projektu Firebase

Zanim dodasz Firebase do swojej aplikacji Apple, musisz utworzyć taką aplikację projekt, aby połączyć się z aplikacją. Odwiedź Więcej informacji o projektach Firebase Projekty Firebase.

Zarejestruj aplikację w Firebase

Aby używać Firebase w swojej aplikacji Apple, musisz ją zarejestrować w projekt Firebase. Rejestracja aplikacji często nazywa się „dodawaniem” aplikacji na w projektach AI.

  1. Otwórz konsolę Firebase.

  2. Na środku strony przeglądu projektu kliknij ikonę iOS+. aby rozpocząć proces konfiguracji.

    Jeśli masz już aplikację w projekcie Firebase, kliknij Dodaj aplikację. aby wyświetlić opcje platformy.

  3. W polu identyfikator pakietu wpisz identyfikator pakietu aplikacji.

    .
  4. (Opcjonalnie) Wpisz inne informacje o aplikacji: Nazwa aplikacji i identyfikator App Store.

  5. Kliknij Zarejestruj aplikację.

Dodaj plik konfiguracji Firebase

  1. Kliknij Download GoogleService-Info.plist, aby otrzymać Firebase Apple pliku konfiguracyjnego platform (GoogleService-Info.plist).

  2. Przenieś plik konfiguracji do katalogu głównego projektu Xcode. Jeśli pojawi się taka prośba, zaznacz, aby dodać plik konfiguracyjny do wszystkich środowisk docelowych.

Jeśli masz w projekcie kilka identyfikatorów pakietów, musisz powiązać każdy z nich Identyfikator zarejestrowanej aplikacji w konsoli Firebase, dzięki czemu każda aplikacja może mieć własny plik GoogleService-Info.plist.

Dodaj pakiety SDK Firebase do swojej aplikacji

Użyj menedżera pakietów Swift, aby zainstalować zależności Firebase i nimi zarządzać.

  1. W Xcode po otwarciu projektu aplikacji przejdź do File > Dodaj pakiety.
  2. Gdy pojawi się prośba, dodaj repozytorium SDK platform Apple Platform SDK Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Wybierz bibliotekę Firebase Cloud Messaging.
  5. Dodaj flagę -ObjC do sekcji Inne flagi łączące w ustawieniach kompilacji celu.
  6. Aby zapewnić optymalne działanie usługi Firebase Cloud Messaging, zalecamy włączam Google Analytics w projekcie Firebase i dodając do aplikacji pakiet SDK Firebase dla Google Analytics. Dostępne opcje wybrać bibliotekę bez zbierania danych IDFA lub z zbieraniem tych danych.
  7. Po zakończeniu Xcode automatycznie rozpocznie rozpoznawanie i pobieranie lub zależności w tle.

Prześlij klucz uwierzytelniania APNs

Prześlij klucz uwierzytelniania APNs do Firebase. Jeśli nie masz jeszcze klucza uwierzytelniania APNs, utwórz go w Apple Developer Member Center

  1. W projekcie w konsoli Firebase wybierz ikona koła zębatego, wybierz Ustawienia projektu i wybierz Komunikacja w chmurze.

  2. W sekcji Klucz uwierzytelniania APN w sekcji Konfiguracja aplikacji na iOS kliknij przycisk Prześlij Przycisk

  3. Przejdź do miejsca, w którym masz zapisany klucz, wybierz go i kliknij Otwórz. Dodaj identyfikator klucza (dostępny w sekcji Apple Developer Member Center) i kliknij Prześlij.

Zainicjuj Firebase w swojej aplikacji

Musisz dodać do swojej aplikacji kod inicjowania Firebase. Importuj moduł Firebase i skonfiguruj współdzieloną instancję, jak pokazano poniżej:

  1. Zaimportuj moduł FirebaseCore do UIApplicationDelegate, jak i wszelkie inne Moduły Firebase używane przez przedstawiciela aplikacji. Aby na przykład użyć atrybutów Cloud Firestore i Authentication:

    SwiftUI

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

    Swift

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Skonfiguruj FirebaseApp współdzielonej instancji w uprawnieniach przedstawiciela aplikacji Metoda application(_:didFinishLaunchingWithOptions:):

    SwiftUI

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

    Swift

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

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Jeśli używasz SwiftUI, musisz utworzyć i dołączyć przedstawiciela aplikacji. do struktury App za pomocą UIApplicationDelegateAdaptor lub NSApplicationDelegateAdaptor Musisz też wyłączyć przełączanie przekazywania dostępu do aplikacji. Dla: więcej informacji znajdziesz w instrukcjach SwiftUI.

    SwiftUI

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

Zarejestruj się, aby otrzymywać powiadomienia zdalne

Podczas uruchamiania lub w oczekiwanym punkcie procesu aplikacji zarejestrować aplikację do otrzymywania zdalnych powiadomień. Zadzwoń do nas registerForRemoteNotifications jak pokazano:

Swift

UNUserNotificationCenter.current().delegate = self

let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
  options: authOptions,
  completionHandler: { _, _ in }
)

application.registerForRemoteNotifications()

Objective-C

[UNUserNotificationCenter currentNotificationCenter].delegate = self;
UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
    UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
[[UNUserNotificationCenter currentNotificationCenter]
    requestAuthorizationWithOptions:authOptions
    completionHandler:^(BOOL granted, NSError * _Nullable error) {
      // ...
    }];

[application registerForRemoteNotifications];

Dostęp do tokena rejestracji

Aby wysłać wiadomość na konkretne urządzenie, musisz znać token rejestracji. Należy go podać w polu Kreator powiadomień, aby ukończyć ten samouczek, skopiuj token lub bezpiecznie przechowywać po pobraniu.

Domyślnie pakiet SDK FCM generuje tokena rejestracji dla instancji aplikacji klienta przy uruchamianiu aplikacji. Podobnie jak token urządzenia APNs ten token pozwala wysyłać kierowane powiadomienia do dowolnej instancji aplikacji.

W taki sam sposób, w jaki platformy Apple zwykle dostarczają token urządzenia APNs przy uruchamianiu aplikacji, FCM udostępnia token rejestracji przez FIRMessagingDelegate Metoda messaging:didReceiveRegistrationToken:. Pakiet FCM SDK pobiera nowy lub istniejący token przy pierwszym uruchomieniu aplikacji oraz za każdym razem, gdy token zostanie zaktualizowany lub unieważniony. We wszystkich przypadkach pakiet SDK FCM wywołuje messaging:didReceiveRegistrationToken:. za pomocą prawidłowego tokena.

Token rejestracji może się zmienić, gdy:

  • Aplikacja zostanie przywrócona na nowym urządzeniu
  • Użytkownik odinstalowuje lub ponownie instaluje aplikację.
  • Użytkownik czyści dane aplikacji.

Ustawianie osoby z przekazanym dostępem do wiadomości

Aby otrzymywać tokeny rejestracji, wdróż osobę z przekazanym dostępem i ustaw właściwość delegate w FIRMessaging po wywołaniu [FIRApp configure] Jeśli na przykład osoba, której przekazano dostęp do aplikacji, spełnia warunki tej osoby możesz ustawić przedstawiciela na stronie application:didFinishLaunchingWithOptions: do siebie samego.

Swift

Messaging.messaging().delegate = self

Objective-C

[FIRMessaging messaging].delegate = self;

Pobieram bieżący token rejestracji

Tokeny rejestracji są dostarczane za pomocą metody messaging:didReceiveRegistrationToken: Ta metoda jest zwykle wywoływana raz na rozpoczyna się od tokena rejestracji. Gdy ta metoda jest wywoływana, jest to idealny moment, aby:

  • Jeśli token rejestracji jest nowy, wyślij go do serwera aplikacji.
  • Subskrybuj token rejestracji do tematów. Jest to wymagane tylko w przypadku nowych subskrypcji lub w sytuacjach, gdy użytkownik ponownie zainstalował aplikację.

Token możesz pobrać bezpośrednio za pomocą token(completion:) Jeśli pobranie tokena nie powiodło się w jakikolwiek sposób, zgłaszany jest błąd inny niż null.

Swift

Messaging.messaging().token { token, error in
  if let error = error {
    print("Error fetching FCM registration token: \(error)")
  } else if let token = token {
    print("FCM registration token: \(token)")
    self.fcmRegTokenMessage.text  = "Remote FCM registration token: \(token)"
  }
}

Objective-C

[[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) {
  if (error != nil) {
    NSLog(@"Error getting FCM registration token: %@", error);
  } else {
    NSLog(@"FCM registration token: %@", token);
    self.fcmRegTokenMessage.text = token;
  }
}];

Możesz użyć tej metody w dowolnym momencie, aby uzyskać dostęp do tokena, zamiast przechowywać go .

Odświeżanie tokenów monitorowania

Aby otrzymywać powiadomienia za każdym razem, gdy token zostanie zaktualizowany, podaj przedstawiciela zgodnego z protokołem przekazywania wiadomości. Ten przykład umożliwia rejestrowanie delegat i dodaje odpowiednią metodę:

Swift

func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
  print("Firebase registration token: \(String(describing: fcmToken))")

  let dataDict: [String: String] = ["token": fcmToken ?? ""]
  NotificationCenter.default.post(
    name: Notification.Name("FCMToken"),
    object: nil,
    userInfo: dataDict
  )
  // TODO: If necessary send token to application server.
  // Note: This callback is fired at each app startup and whenever a new token is generated.
}

Objective-C

- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken {
    NSLog(@"FCM registration token: %@", fcmToken);
    // Notify about received token.
    NSDictionary *dataDict = [NSDictionary dictionaryWithObject:fcmToken forKey:@"token"];
    [[NSNotificationCenter defaultCenter] postNotificationName:
     @"FCMToken" object:nil userInfo:dataDict];
    // TODO: If necessary send token to application server.
    // Note: This callback is fired at each app startup and whenever a new token is generated.
}

Możesz też nasłuchiwać NSNotification o nazwie kFIRMessagingRegistrationTokenRefreshNotification zamiast podawania metody delegowania. Właściwość tokena zawsze ma parametr bieżącej wartości tokena.

Wyślij wiadomość z powiadomieniem

  1. Zainstaluj i uruchom aplikację na urządzeniu docelowym. Na urządzeniach Apple musisz mieć aby zaakceptować prośbę o zgodę na otrzymywanie zdalnych powiadomień.

  2. Upewnij się, że aplikacja na urządzeniu działa w tle.

  3. W konsoli Firebase otwórz stronę Wiadomości.

  4. Jeśli to Twoja pierwsza wiadomość, wybierz Utwórz pierwszą

    1. Wybierz Powiadomienia Firebase i kliknij Utwórz.
  5. Jeśli nie, na karcie Kampanie wybierz Nowa kampania. a potem Powiadomienia.

  6. Wpisz tekst wiadomości. Wszystkie pozostałe pola są opcjonalne.

  7. W panelu po prawej stronie wybierz Wyślij wiadomość testową.

  8. W polu Dodaj token rejestracji FCM wpisz dane rejestracji. uzyskany w poprzedniej sekcji tego przewodnika.

  9. Kliknij Przetestuj.

Po wybraniu opcji Przetestuj docelowe urządzenie klienckie (z aplikacją w tła) powinno otrzymać powiadomienie.

Więcej informacji o dostarczaniu wiadomości do aplikacji znajdziesz tutaj: FCM panelu raportowania, który rejestruje liczba wiadomości wysłanych i otwartych na urządzeniach Apple i z Androidem oraz dane dotyczące „wyświetleń” (powiadomienia użytkowników) dotyczące aplikacji na Androida.

Dalsze kroki

Aby wyjść poza powiadomienia i dodać do zobacz: