Notificações push
Visão Geral
The following guide covers the configuration of the iOS SDK for processing incoming push notifications and sending extracted attribution data to AppsFlyer.
Existem 2 métodos para implementar a integração:
- By utilizing OneLink in the push payload (recommended method). Step 3 is required only if implementing this solution.
- Utilizando o JSON simples no payload push (método legado).
Escolha o método certo para você com base na forma como o profissional de marketing estrutura a notificação push.
Integrando a AppsFlyer com notificações push do iOS
A integração da AppsFlyer com as notificações push do iOS consiste no seguinte:
- Configuração do SDK da AppsFlyer.
- Configuring a
UNUserNotificationCenter
delegate.
Prerequisites
Antes de continuar, certifique-se de ter:
- Um aplicativo iOS com notificações push habilitadas.
- Integrated the SDK.
- Se estiver implementando a solução recomendada baseada no OneLink, você precisa do nome da chave dentro do payload de notificação push que contém o OneLink (fornecido pelo profissional de marketing do aplicativo).
Steps
-
Configure the app to use the
UNUserNotificationCenter
delegate:if #available(iOS 10.0, *) { // For iOS 10 display notification (sent via APNS) UNUserNotificationCenter.current().delegate = self let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound] UNUserNotificationCenter.current().requestAuthorization( options: authOptions, completionHandler: { _, _ in } ) } else { let settings: UIUserNotificationSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil) application.registerUserNotificationSettings(settings) } application.registerForRemoteNotifications() }
-
Implemente o representante de
UNUserNotificationCenter
delegate. In thedidReceive
, chamehandlePushNotification
:@available(iOS 10, *) extension AppDelegate: UNUserNotificationCenterDelegate { func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { let userInfo = response.notification.request.content.userInfo print(userInfo) completionHandler() AppsFlyerLib.shared().handlePushNotification(userInfo) } // Receive displayed notifications for iOS 10 devices. func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) { let userInfo = notification.request.content.userInfo print(userInfo) // Change this to your preferred presentation option completionHandler([[.alert, .sound]]) } }
-
This step is required only if you're implementing the recommended OneLink-based solution.
IndidFinishLaunchingWithOptions
, calladdPushNotificationDeepLinkPath
before callingstart
:AppsFlyerLib.shared().addPushNotificationDeepLinkPath(["af_push_link"])
In this example, the SDK is configured to look for the
af_push_link
key in the push notification payload.
When callingaddPushNotificationDeepLinkPath
the SDK verifies that:- A chave necessária existe no payload.
- A chave contém uma URL do OneLink válida.
Observação
addPushNotificationDeepLinkPath
accepts an array of strings too, to allow you to extract the relevant key from nested JSON structures. For more information, seeaddPushNotificationDeepLinkPath
.
Atualizado 11 meses atrás