Technologia Push to jeden z najszybszych sposobów na dostarczanie powiadomień użytkownikom Twojej aplikacji. Aby je otrzymać, użytkownik nie musi wykonywać żadnych czynności, a są one inicjowane po stronie serwera i pojawiają się bezpośrednio w pasku powiadomień na ekranie urządzenia mobilnego. W tej lekcji zrozumiemy, jak zaimplementować powiadomienia push w aplikacjach zbudowanych na platformie AppMaster.
Send Push blok
Do wysyłania powiadomień push, Send Push wykorzystuje się bloki odpowiadające systemowi operacyjnemu urządzenia docelowego (iOS lub Android).
Uzyskanie Push Token oraz Bundle ID
Aby wykonać wysyłkę, należy określić co najmniej dwa parametry: Push Token oraz IOS (Android) Bundle ID. Dlatego warto zacząć od części przygotowawczej i zorientować się, jak uzyskać te parametry.
Domyślnie w bazie danych każdego projektu znajduje się Mobile Instance model, który jest połączony z User i zawiera wymagane pola: push_token oraz bundle_id.
Utwórzmy osobny proces biznesowy dla aplikacji mobilnej, który będzie stanowił uzupełniony Mobile Instance model. Aby uzyskać token push, należy użyć bloku Get Push Token blok.
Kolejnym krokiem jest uzyskanie informacji o urządzeniu. I tutaj, w zależności od systemu operacyjnego, wymagane będą różne bloki. Dlatego, aby określić system operacyjny, należy użyć bloku Platform Switch bloku.
W zależności od wyniku, należy wybrać odpowiedni IOS Device Info lub Android Device Info blok jest używany. Stamtąd możesz uzyskać różne informacje o urządzeniu, ale w naszym przykładzie wystarczy dowiedzieć się tylko. Bundle ID.
Po zebraniu wszystkich danych można utworzyć Mobile Instance model, wskazać do jakiego systemu operacyjnego należy i przekazać go jako parametr wyjściowy procesu biznesowego.
Zapisywanie informacji o urządzeniu mobilnym użytkownika
Kolejnym krokiem jest stworzenie backendowego procesu biznesowego łączącego wygenerowane Mobile Instance z konkretnym użytkownikiem i zapisu do bazy danych. Ten proces biznesowy wymaga następujących czynności:
- Ustalenie aktualnego użytkownika za pomocą. Auth: Get current user blok.
- Rozwiń zawartość powstałego Mobile Instance modelu.
- Ponownie złożyć model i dodać do niego połączenie użytkownika za pomocą Make Mobile Instance bloku.
- Użyj DB: Create Mobile Instance i zapisz dane w bazie danych.
W POST /Mobile Instance/ endpoint, możesz zastąpić standardowy proces biznesowy tym, który został właśnie stworzony.
Ostatnim etapem przygotowań jest podjęcie decyzji, kiedy dokładnie warto zapisać do bazy danych informacje o urządzeniu użytkownika. Logicznym rozwiązaniem byłoby zrobienie tego podczas wykonywania autoryzacji w aplikacji. W tym celu, bezpośrednio po Set Auth Token do procesu autoryzacji użytkownika w aplikacji mobilnej należy dodać dwa nowe bloki z utworzonymi wcześniej procesami biznesowymi. Pierwszy z nich odbiera i generuje niezbędne informacje, a drugi tworzy połączenie z użytkownikiem i zapisuje do bazy danych.
Wysyłanie powiadomień push
Część przygotowawcza została zakończona i można rozpocząć wysyłanie powiadomień push. Aby to zrobić, stworzymy backendowy proces biznesowy. Wyobraźmy sobie, że naszym zadaniem będzie wysłanie powiadomienia do wszystkich użytkowników naszej aplikacji. Będziemy je wysyłać tylko do urządzeń z systemem operacyjnym Android i nie do wszystkich urządzeń użytkownika, a jedynie do tego, które było używane jako ostatnie.
Zacznijmy od parametrów wejściowych. Konieczne jest przekazanie samego tekstu powiadomienia. Składa się on z trzech części: ciała wiadomości (body), jej tytułu (title), oraz podtytułu (subtitle).
Następnie musisz znaleźć wszystkich użytkowników aplikacji. Aby to zrobić, należy użyć bloku Search User i ustawić niezbędne parametry:
- _With = Mobile Instances (trzeba uzyskać nie tylko informacje o użytkowniku, ale także o urządzeniu mobilnym z nim związanym)
- Limit = -1 (domyślnie zapytanie zwraca 25 rekordów, określenie "-1" pozwala usunąć ten limit i uzyskać wszystkich użytkowników)
- _mobile_instances_os = Android (zgodnie z warunkami zadania, interesują nas tylko urządzenia Android )
Dla wygenerowanej tablicy użytkowników należy wykonać cykl operacji (For each loop block)
Dla każdego użytkownika z Expand User bloku, należy uzyskać informacje o urządzeniach mobilnych (Mobile Instances). Potrzebujemy wysłać powiadomienie tylko do jednego urządzenia, więc ustawiamy index = 0 w Array Element bloku, a także sprawdzamy, czy tablica w ogóle zawiera przynajmniej jeden element (w końcu użytkownik może mieć tylko urządzenie iOS ). W tym celu sprawdzamy poprawność elementu, przekazujemy poprawną wartość indeksu do If-Else i kontynuujemy pętlę tylko wtedy, gdy wartość ta jest true.
Jeśli wszystko jest poprawne i znaleziono informacje o urządzeniu użytkownika, to należy użyć Expand Mobile Instance i przekazać niezbędne wartości do bloku Send Push (Android) bloku.
Należy pamiętać, że podczas tworzenia i testowania aplikacji w. Developer App, należy ustawić opcję Developer Mode = True.
Możesz również użyć opcji TTL (Time to live) opcja. Określa ona czas w sekundach, po jakim powiadomienie ma zostać wysłane. Jeśli powiadomienie nie może być dostarczone natychmiast, na przykład, jeśli użytkownik jest chwilowo poza zasięgiem, to w przydzielonym czasie zostaną podjęte ponowne próby dostarczenia.
Po zakończeniu cyklu i wysłaniu powiadomień do wszystkich możliwych użytkowników, kończy się również praca procesu biznesowego.
Dodatkowe parametry
Osobno warto omówić dodatkowe parametry bloku send:
- Push ID
- Push Class
- Data
Nie mają one wpływu na fakt wysłania powiadomienia ani na jego treść, ale mogą być wykorzystane podczas przetwarzania powiadomienia po stronie użytkownika. Aplikacja mobilna posiada specjalne wyzwalacze, które są odpalane w momencie odebrania lub kliknięcia otrzymanego powiadomienia push.
Wyzwalacze powiadomień push zawierają dane z powyższych dodatkowych parametrów tekstowych. Jako przykład możemy podać najprostszy proces, który po kliknięciu wyzwalacza wyświetli na ekranie kolejne powiadomienie z informacjami przekazanymi w Data parametrem.
Innym popularnym przypadkiem użycia wyzwalaczy jest zbieranie informacji o dostarczeniu powiadomień. Mogą one na przykład wysyłać do serwera wiadomość informującą, że powiadomienie Push rzeczywiście zostało dostarczone, a także zbierać statystyki i zliczać liczbę kliknięć w powiadomienia.