Oi
Neste artigo, quero compartilhar minha experiência de usar uma opção não óbvia (pelo menos para mim) para alterar o texto de notificação do aplicativo, enviando dados adicionais por meio do UNUserNotificationCenter.
Espero que este artigo seja útil para iniciantes em programação para iOS no Swift. Supõe-se que você tenha pelo menos alguma experiência em programação com o Swift para iOS. Eu usei o Swift 5 e o Xcode 10.2.1. E então, vamos começar.
Desafio
Eu tenho um aplicativo que mostra as notificações do usuário. Uma notificação consiste em texto do corpo e texto em segundo plano.
Portanto, a idéia é primeiro mostrar ao usuário apenas o texto principal e, se ele quiser conhecer o texto secundário, ele deve clicar no botão "mostrar" na notificação.
Eu uso o seguinte método para mostrar uma notificação (todas as explicações abaixo):
1. Antes de tudo, devemos definir uma instância do UNUserNotificationCenter:
class NotificationService: NSObject, UNUserNotificationCenterDelegate { let notificationCenter = UNUserNotificationCenter.current() }
2. Em seguida, declaramos um método que usaremos para enviar notificações:
Meu método de solicitação de notificação Quando chamamos esse método, veremos uma notificação no momento que definimos.
Se o usuário puxar a notificação para baixo, o botão "Mostre-me" será exibido. Em seguida, o usuário deverá clicar neste botão para ver o texto de segundo plano. Para fazer isso, devemos usar o método de delegação UNUserNotificationCenterDelegate:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { … }
Portanto, o código que eu uso no método deste delegado é o seguinte:
Meu método de delegação func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { print(“didReceive response”)
E aqui está o que parece:

Dentro do projeto (que você pode baixar no link abaixo), há mais código, mas a essência da ideia é descrita neste artigo.
Obrigada
Link para o projeto