6

W Androidzie, możemy otrzymywać typ danych powiadomień, gdy aplikacja nie działa lub jest zamknięta. I można analizować i powiadomienia wyświetlacz z kodem i może zrobić coś podobnego aktualizacji starą wiadomość, etc ..Jak obsługiwać powiadomienia typu fcm, gdy aplikacja nie działa lub jest zamknięta w systemie iOS, podobnie jak w systemie Android?

public class FCMListenerService extends FirebaseMessagingService { 
    @Override 
    public void onMessageReceived(RemoteMessage remoteMessage) { 
     Log.d("onMessageReceived for FCM", remoteMessage.getData().toString()); 
    } 
} 

Jak mogę zrobić coś podobnego w iOS?

Jestem w stanie uzyskać typ danych powiadomień, gdy aplikacja jest w tle lub na pierwszym planie. Więc jestem w stanie zrobić to, co chcę. Ale nie mogę debugować sposobu obsługi powiadomień o typie danych, gdy aplikacja nie jest uruchomiona? Czy ktoś może mi pomóc?

Poniżej znajduje się ładunek, który próbuję wysłać.

{ 
    "to": "..............", 
    "data": { 
    "body": "data", 
    "title": "Portugal vs. Denmark", 
    "icon": "myicon" 
    }, 
    "content_available": true 
} 
+0

Popraw mnie jeśli się mylę, ale nie jest tak, że iOS nie pozwala aplikacje, które są zamknięte/nie działa otrzymać informację? AFAIK, to jest domyślne zachowanie. –

+0

@AL Czy nie możemy odbierać wiadomości z danymi fcm, gdy aplikacja nie działa w systemie iOS? –

Odpowiedz

1

Nie wolno umieszczać niestandardowych tagów wewnątrz znacznika aps. Oto, co mówią o tym dokumentacja:

Dostawcy mogą określać niestandardowe wartości ładunku poza zarezerwowaną dla Apple przestrzeń nazw aps przechowywaną w Apple . Wartości niestandardowe muszą używać typów podstawowych JSON i typów podstawowych: słownik (obiekt), tablica, łańcuch, liczba i logiczna. Więc w twoim przypadku należy zrobić coś takiego:

{ 
    "aps" : { 
     "alert" : { 
      "title" : "Game Request", 
      "body" : "Bob wants to play poker", 
      "action-loc-key" : "PLAY" 
     }, 
     "badge" : 5 
    }, 
    "acme1" : "bar", 
    "acme2" : [ "bang", "whiz" ] 
} 

Dlatego można przeczytać swój własny ładunek z patrząc na to jest kluczem głównym JSON, zamiast w „APS”:

Aby uzyskać więcej informacji:

https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CreatingtheNotificationPayload.html

+0

Dzięki za odpowiedź, ale tutaj jest to wewnętrznie wykonane przez FCM, jak sądzę. Czy istnieje jakiś sposób wysłania obiektu do urządzenia poprzez APN, przeanalizowanie go i wyświetlenie powiadomienia z niestandardową logiką, gdy aplikacja nie działa –