Sobes.tech
Junior — Middle

Que alterações precisam ser feitas no código do sistema para suportar o processamento de notificações push?

sobes.tech IA

Resposta da IA

Para suportar o processamento de notificações push numa aplicação iOS, é necessário fazer as seguintes alterações:

  1. Registar para receber notificações push

Adicionar um pedido de permissão no AppDelegate:

import UserNotifications

UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
    if granted {
        DispatchQueue.main.async {
            UIApplication.shared.registerForRemoteNotifications()
        }
    }
}
  1. Processar o registo do dispositivo

Implementar os métodos do delegado para obter o token do dispositivo:

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
    // Enviar deviceToken para o servidor
}

func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
    print("Falha no registo: \(error)")
}
  1. Processar notificações recebidas

Implementar métodos para lidar com notificações quando a aplicação está em segundo plano ou ativo:

import UserNotifications

extension AppDelegate: UNUserNotificationCenterDelegate {
    func userNotificationCenter(_ center: UNUserNotificationCenter, 
                                willPresent notification: UNNotification, 
                                withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        // Processar notificação quando a aplicação está ativa
        completionHandler([.alert, .sound])
    }

    func userNotificationCenter(_ center: UNUserNotificationCenter, 
                                didReceive response: UNNotificationResponse, 
                                withCompletionHandler completionHandler: @escaping () -> Void) {
        // Processar clique na notificação
        completionHandler()
    }
}
  1. Configuração de capabilities

No Xcode, ativar Push Notifications na secção Signing & Capabilities.

Assim, a aplicação poderá receber e processar notificações push do servidor.