Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Warning
Azure Communication Services wprowadza nowatorskie zmiany, a niektóre usługi są wycofywane. Dowiedz się więcej w przewodniku po zmianach emerytalnych i przełamowych.
Ten artykuł opisuje, jak tworzyć powiadomienia push w aplikacji iOS za pomocą SDK Azure Communication Services Chat.
Powiadomienia push ostrzegają użytkowników o przychodzących wiadomościach w wątku czatu, gdy aplikacja mobilna nie jest uruchomiona w tle. Usługi Azure Communication Services obsługują dwie wersje powiadomień push:
Wersja podstawowa: na ikonie aplikacji pojawia się numer znaczka, urządzenie odtwarza dźwięk powiadomienia, a zostanie wyświetlony wyskakujące baner alertu.
Wersja zaawansowana: oprócz funkcji obsługiwanych w wersji podstawowej można dostosować tytuł i podgląd komunikatów na banerze alertu.
W tym samouczku Ty:
- Skonfiguruj certyfikat usługi Apple Push Notification Service (APNs).
- Skonfiguruj program Xcode na potrzeby powiadomień push.
- Wdróż podstawową lub zaawansowaną wersję powiadomień push.
- Przetestuj powiadomienia w aplikacji.
- Skonfiguruj automatyczne odnawianie rejestracji dla powiadomień push.
Pobieranie kodu
Pobierz przykładowy kod na GitHub Azure Samples Dodaj czat do swojej aplikacji.
Wymagania wstępne
Wypełnij wymagane kroki w artykule Dodaj czat do swojej aplikacji .
Utwórz centrum powiadomień platformy Azure w ramach tej samej subskrypcji co zasób usług komunikacyjnych, a następnie połącz centrum powiadomień z zasobem usług komunikacyjnych. Zobacz Tworzenie centrum powiadomień.
Utwórz certyfikat .p12 APNs i skonfiguruj go w centrum powiadomień
Jeśli nie jesteś klientem wewnętrznym firmy Microsoft, wykonaj czynności opisane w poniższej procedurze, aby utworzyć certyfikat usługi Apple Push Notification service (APNs).
Jeśli jesteś wewnętrznym klientem Microsoft, złóż zgłoszenie i podaj identyfikator pakietu swojej aplikacji, aby uzyskać .p12 certyfikat. Przejdź bezpośrednio do ostatniego kroku w poniższej procedurze.
Wejdź do Certyfikatów, Identyfikatorów i Profili>Identyfikatorów>Aplikacji, a następnie wybierz identyfikator aplikacji powiązany z Twoją aplikacją.
Na stronie identyfikatora aplikacji wybierz Możliwości>Powiadomienia push, a następnie wybierz Zapisz.
W wyświetlonym oknie dialogowym Modyfikowanie możliwości aplikacji wybierz pozycję Potwierdź.
Na stronie identyfikatora aplikacji wybierz Możliwości>Powiadomienia push>Konfiguruj, a następnie wybierz jedną z następujących opcji:
- Aby przetestować powiadomienia wypychane podczas tworzenia aplikacji iOS, wybierz przycisk Utwórz certyfikat w sekcji Certyfikat SSL dla programowania.
- Aby wysyłać powiadomienia push w środowisku produkcyjnym, wybierz przycisk Utwórz certyfikat w obszarze Produkcyjny certyfikat SSL.
Na stronie Certyfikaty, Identyfikatory i profile zostanie wyświetlony obszar Tworzenie nowego certyfikatu.
W tym obszarze przekażesz żądanie podpisania certyfikatu (CSR):
Na nowej karcie przeglądarki skorzystaj z tej strony pomocy Apple, aby utworzyć CSR i zapisać plik jako App name.cer. Instrukcje obejmują używanie Asystenta certyfikatów do żądania certyfikatu i wypełniania informacji o certyfikacie.
Przeciągnij plik .cer do obszaru Wybierz plik . Następnie wybierz pozycję Kontynuuj w prawym górnym rogu.
Wybierz Pobierz.
Zapisz plik lokalnie w
.p12formacie.
Otwórz pobrany plik
.cer. W Keychain Access wybierz swój certyfikat, kliknij prawym przyciskiem myszy, a następnie wyeksportuj certyfikat w.p12formacie.Przejdź do centrum powiadomień. W obszarze Ustawienia wybierz pozycję Apple (APNS). Następnie wypełnij szczegóły certyfikatu:
- Dla Trybu uwierzytelniania wybierz Certyfikat.
- W przypadku opcji Prześlij certyfikat prześlij utworzony plik
.p12. - Wybierz Tryb aplikacji według potrzeb.
Po zakończeniu wprowadzania wszystkich informacji wybierz pozycję Zapisz.
Konfigurowanie programu Xcode
W programie Xcode przejdź do pozycji Podpisywanie i możliwości.
Dodaj funkcję, wybierając + Funkcja, a następnie wybierz Powiadomienia push.
Dodaj kolejną funkcję, wybierając pozycję + Funkcja, a następnie wybierz Tryby w tle.
W obszarze Tryby w tle wybierz Zdalne powiadomienia.
W obiekcie Pod Target — AzureCore ustaw opcję Wymagaj tylko interfejsu API bezpiecznego dla rozszerzeń aplikacji na Nie.
Implementować powiadomienia push
Wersja podstawowa
Jeśli chcesz zaimplementować podstawową wersję powiadomień push, musisz zarejestrować się, aby otrzymywać powiadomienia zdalne za pomocą usługi APNs. Aby zobaczyć powiązaną implementację w AppDelegate.swift, zobacz GitHub Azure Samples kod Swift delegata aplikacji.
Wersja zaawansowana
Jeśli chcesz zaimplementować zaawansowaną wersję powiadomień push, musisz uwzględnić następujące elementy w aplikacji. Powodem jest to, że szyfrowanie treści klientów (na przykład treści wiadomości czatu i nazwy nadawcy) w ładunkach powiadomień push wymaga pewnych obejść.
Magazyn danych dla kluczy szyfrowania
Tworzenie trwałego magazynu danych na urządzeniach z systemem iOS. To przechowywanie danych musi współdzielić dane między główną aplikacją a rozszerzeniami aplikacji.
W przykładowym kodzie tego samouczka wybierz App Groups jako miejsce przechowywania danych następująco:
Dodaj funkcję Grup aplikacji do celów twojej aplikacji (aplikacji głównej i rozszerzeń aplikacji), wykonując kroki opisane w artykule Apple Dodawanie funkcji do aplikacji.
Skonfiguruj grupy aplikacji, wykonując kroki opisane w artykule Apple Configuring App Groups (Konfigurowanie grup aplikacji). Upewnij się, że główna aplikacja i rozszerzenia aplikacji mają taką samą nazwę kontenera.
Rozszerzenie usługi powiadomień
Zaimplementuj rozszerzenie usługi powiadomień powiązane z główną aplikacją. To rozszerzenie aplikacji odszyfrowuje payload powiadomienia push, gdy urządzenie je otrzymuje.
Zobacz Dodaj rozszerzenie aplikacji serwisowej do swojego projektu w dokumentacji Apple i postępuj zgodnie z instrukcjami.
Zobacz Implementuj metody obsługi rozszerzenia w dokumentacji Apple.
Firma Apple udostępnia domyślny kod do odszyfrowywania danych i możesz postępować zgodnie z ogólną strukturą tego samouczka. Jednak ze względu na to, że używasz zestawu SDK czatu do odszyfrowywania, musisz zastąpić część rozpoczynającą się od // Try to decode the encrypted message data twoją własną logiką.
Powiązaną implementację w NotificationService.swift zobacz w przykładzie GitHub Azure Samples Notification Service for Swift.
Implementacja protokołu PushNotificationKeyStorage
Protokół PushNotificationKeyStorage jest wymagany dla zaawansowanej wersji powiadomień push. Możesz użyć domyślnej AppGroupPushNotificationKeyStorage klasy udostępnionej przez Chat SDK. Jeśli nie używasz grup aplikacji jako magazynu kluczy lub chcesz dostosować metody magazynu kluczy, utwórz własną klasę zgodną z protokołem PushNotificationKeyStorage .
PushNotificationKeyStorage definiuje dwie metody:
onPersistKey(encryptionKey:expiryTime): Ta metoda utrzymuje klucz szyfrujący w pamięci urządzenia iOS użytkownika. Zestaw SDK czatu ustawia 45 minut jako czas wygaśnięcia klucza szyfrowania. Jeśli chcesz, aby powiadomienia push działały przez ponad 45 minut, należy zaplanować wywołaniechatClient.startPushNotifications(deviceToken:)częściej (na przykład co 15 minut), aby nowy klucz szyfrowania mógł być zarejestrowany przed wygaśnięciem starego klucza.onRetrieveKeys() -> [String]: Ta metoda pobiera ważne klucze, które były wcześniej przechowywane. Masz elastyczność zapewniania dostosowywania na podstawie wybranego wcześniej magazynu danych.
W rozszerzeniu protokołu czatowego SDK udostępnia implementację metody decryptPayload(notification:) -> PushNotificationEvent, której można użyć. Powiązaną implementację w NotificationService.swift można znaleźć w GitHub Azure Samples Notification Service for Swift.
Testowanie powiadomień
Utwórz wątek czatu z użytkownikiem A i użytkownikiem B.
Umieść wartości
<ACCESS_TOKEN>i<ACS_RESOURCE_ENDPOINT>użytkownika A w AppSettings.plist.Ustaw Włącz kod bitowy na Nie dla dwóch celów podów: AzureCommunicationChat i Trouter.
Podłącz urządzenie z systemem iOS do komputera Mac i uruchom program. Kiedy pojawi się prośba o autoryzowanie powiadomień push na urządzeniu, wybierz Zezwalaj.
Jako użytkownik B wyślij wiadomość czatu. Upewnij się, że użytkownik A odbiera powiadomienie push na urządzeniu z systemem iOS.
Implementowanie odnawiania rejestracji
Aby Microsoft zapewnił bezpieczną usługę czatu, rejestracja push powiadomień na urządzeniach z systemem iOS pozostaje ważna tylko przez 45 minut. Aby zachować funkcjonalność powiadomień push, należy zaimplementować odnawianie rejestracji w aplikacji klienckiej.
Ten artykuł opisuje dwa rozwiązania zgodne z oficjalnymi wytycznymi Apple. Zalecamy zaimplementowanie obu rozwiązań razem w celu zwiększenia ich skuteczności.
Uwaga
Na skuteczność obu rozwiązań może wpływać wiele czynników. Na przykład stan baterii urządzenia, warunki sieciowe i ograniczenia specyficzne dla systemu iOS mogą mieć wpływ na możliwość uruchamiania zadań w tle przez aplikację. Aby uzyskać więcej informacji, obejrzyj wideo "Zaawansowane wykonywanie w tle aplikacji" oraz przeczytaj artykuł firmy Apple "Wysyłanie aktualizacji w tle do Twojej aplikacji".
Rozwiązanie 1. Zadania w tle
Zadania w tle umożliwiają wykonywanie czynności nawet wtedy, gdy aplikacja nie jest na pierwszym planie. Podczas implementowania zadania w tle aplikacja może zażądać więcej czasu na ukończenie określonego zadania, na przykład na odnowienie rejestracji powiadomień push.
W poniższych sekcjach opisano sposób używania zadań w tle do odnawiania rejestracji.
Konfigurowanie automatycznego odświeżania tokenów dostępu użytkowników
Aby zapewnić nieprzerwany dostęp do usług czatów, należy zachować prawidłowe tokeny dostępu użytkowników. Tokeny zazwyczaj mają domyślny okres ważności 24 godzin, po którym wygasają i wymagają odnowienia. Zaimplementowanie mechanizmu automatycznego odświeżania pomaga zagwarantować, że token jest prawidłowy za każdym razem, gdy aplikacja czatu jest aktywowana.
Zestaw SDK czatu usprawnia zarządzanie tokenami, automatyzując proces odświeżania po zaimplementowaniu niestandardowego modułu odświeżania tokenu dostępu. Wykonaj następujące kroki, aby skonfigurować aplikację czatu do obsługi automatycznego odświeżania tokenu:
Aby zapewnić ciągły i bezpieczny dostęp użytkowników, musisz wdrożyć warstwę usług dedykowaną do wydawania tokenów. Jedną z opcji jest użycie usługi Azure Functions do tego celu.
Aby utworzyć funkcję platformy Azure, zobacz artykuł Tworzenie zaufanej usługi dostępu użytkowników przy użyciu usługi Azure Functions . W tym artykule opisano sposób konfigurowania aplikacji funkcji i wdrażania niezbędnego kodu do wystawiania tokenów.
Po skonfigurowaniu funkcji platformy Azure:
Uzyskaj adres URL wystawcy tokenu w witrynie Azure Portal. Aplikacja do czatu używa tego adresu URL do żądania nowych tokenów.
Utwórz i zintegruj odświeżanie tokenu w aplikacji czatu. Ten składnik żąda nowych tokenów i inicjuje klienta czatu w celu bezproblemowego automatycznego odnawiania tokenu.
Przykładowy kod modułu odświeżania tokenu i jego integracji z klientem czatu jest dostępny w repozytorium GitHub dla przykładowych aplikacji.
Włączanie i planowanie zadań w tle
Aby aktywować i zaplanować zadania w tle w aplikacji systemu iOS, wykonaj kroki opisane w artykule Apple Using background tasks to update your app (Używanie zadań w tle do aktualizowania aplikacji).
Dla praktycznego zastosowania zobacz GitHub Azure Przykłady Dodaj czat do swojej aplikacji. W podanym przykładzie użyto BGProcessingTask skonfigurowanego tak, by zainicjować działanie nie wcześniej niż za minutę, co pokazuje, jak efektywnie pobierać dane w tle.
Rozwiązanie 2. Powiadomienie zdalne
Zdalne powiadomienie to mechanizm uruchamiania zadań w tle przez aplikacje systemu iOS w odpowiedzi na wyzwalacze zewnętrzne. Powiadomienia zdalne można używać do zadań, takich jak odświeżanie rejestracji bez interwencji użytkownika.
Aby użyć powiadomień zdalnych do uruchomienia zadania w tle:
Zaimplementuj mechanizm wyzwalania.
Na przykład możesz użyć aplikacji funkcji platformy Azure jako mechanizmu wyzwalania. Umożliwia uruchamianie kodu w odpowiedzi na różne wyzwalacze, w tym żądania HTTP, dlatego jest przydatne do inicjowania cichych powiadomień push. Pamiętaj, aby zaimplementować rejestr urządzeń po swojej stronie, aby aplikacja funkcjonalna wiedziała, gdzie dostarczać powiadomienia.
Konfigurowanie centrum powiadomień.
Usługa Azure Notification Hubs udostępnia skalowalną infrastrukturę powiadomień wypychanych, która może wysyłać powiadomienia do dowolnej platformy (iOS, Android, Windows itd.) z dowolnego zaplecza (chmury lub środowiska lokalnego).
Możesz ponownie użyć tego samego centrum powiadomień, które wykorzystujesz w przypadku zwykłych powiadomień push. Jeśli chcesz skonfigurować nowy, zobacz dokumentację usługi Azure Notification Hubs.
Skonfiguruj aplikację funkcji platformy Azure pod kątem regularnych powiadomień.
Dostosuj aplikację funkcji, aby regularnie wysyłać powiadomienia zdalne za pośrednictwem centrum powiadomień. Te powiadomienia są przekazywane do usługi Apple Push Notification (APNs) i kierowane do określonego urządzenia. Aby uzyskać więcej instrukcji, zobacz Notification Hubs output binding for Azure Functions (Powiązanie danych wyjściowych usługi Notification Hubs dla usługi Azure Functions).
Obsługa powiadomień w aplikacji.
W aplikacji systemu iOS zaimplementuj metodę instancji aplikacji, aby wyzwolić automatyczne odświeżanie rejestracji po otrzymaniu cichego powiadomienia.
Aby uzyskać więcej informacji, zobacz artykuł Firmy Apple Konfigurowanie zdalnego serwera powiadomień.