iOS
Rozszerzenie bogatego powiadomienia push - iOS 10.
Szukaj…
Wprowadzenie
iOS 10 dał nam UserNotifications.framework
, nowy interfejs API dla lokalnych / zdalnych powiadomień. Oferuje przeglądanie załączników multimedialnych lub odpowiadanie na wiadomości bezpośrednio z powiadomienia.
Treść powiadomienia składa się z: tytułu, podtytułu, treści i załącznika. Załącznik może zawierać obrazy / gify / filmy o wielkości do 50 mb.
Rozszerzenie treści powiadomienia
Dlaczego tego potrzebujemy?
Rozszerzenie treści pomaga nam stworzyć niestandardowy interfejs użytkownika po rozwinięciu powiadomienia.
Za pomocą tej struktury można zdefiniować rozszerzenie, które odbiera dane powiadomień i zapewnia odpowiednią reprezentację wizualną. Twoje rozszerzenie może także reagować na niestandardowe działania związane z tymi powiadomieniami.
Realizacja
- W oknie xCode
Navigator
przejdź do sekcjiTargets
. NaciśnijAdd New Target
. - Wybierz szablon
Notification Content Extension
:
- W pliku
info.plist
ustaw identyfikator kluczaUNNotificationExtensionCategory
:
NSExtensionAttributes :
UNNotificationExtensionCategory
(wymagane)
Wartością tego klucza jest ciąg znaków lub tablica ciągów znaków. Każdy ciąg zawiera identyfikator kategorii zadeklarowanej przez aplikację za pomocą klasy UNNotification Category.
UNNotificationExtensionInitialContentSizeRatio
(wymagane)
Liczba reprezentująca początkowy rozmiar widoku kontrolera widoku wyrażona jako stosunek jego wysokości do szerokości.
UNNotificationExtensionDefaultContentHidden
(opcjonalnie)
Po ustawieniu na TAK system wyświetla tylko niestandardowy kontroler widoku w interfejsie powiadomień. Po ustawieniu NIE, system wyświetla domyślną treść powiadomienia oprócz treści kontrolera widoku.
UNNotificationExtensionOverridesDefaultTitle
(opcjonalnie)
Wartość tego klucza jest wartością logiczną. Po ustawieniu wartości true system używa właściwości title kontrolera widoku jako tytułu powiadomienia. Po ustawieniu wartości false system ustawia tytuł powiadomienia na nazwę Twojej aplikacji. Jeśli nie określisz tego klucza, wartością domyślną jest false.
- Utwórz niestandardowy widok w pliku
NotificationViewController.swift
- Dodaj nowy
category key
i ustaw jego wartość na wpisaną w Info.plist (krok 3):
Pchać:
{
aps: {
alert: { … },
category: 'io.swifting.notification-category'
}
}
Lokalny:
let mutableNotificationContent = UNMutableNotificationContent()
mutableNotificationContent.category = "io.swifting.notification-category"
mutableNotificationContent.title = "Swifting.io Notifications"
mutableNotificationContent.subtitle = "Swifting.io presents"
mutableNotificationContent.body = "Custom notifications"
Sprawdź także oficjalne odniesienie do interfejsu API: https://developer.apple.com/reference/usernotificationsui/unnotificationcontentextension?utm_source=swifting.io&utm_medium=web&utm_campaign=blog%20post