Push-уведомления
Обзор
The following guide covers the configuration of the iOS SDK for processing incoming push notifications and sending extracted attribution data to AppsFlyer.
Есть 2 метода для реализации интеграции:
- By utilizing OneLink in the push payload (recommended method). Step 3 is required only if implementing this solution.
- Использование обычного JSON в полезной нагрузке push-уведомления (устаревший метод).
Выберите подходящий для вас метод в зависимости от того, как маркетолог структурирует push-уведомление.
Интеграция AppsFlyer и push-уведомлений iOS
Интеграция AppsFlyer и push-уведомлений iOS состоит в следующем:
- Настройка SDK AppsFlyer.
- Configuring a
UNUserNotificationCenter
delegate.
Prerequisites
Прежде чем продолжить, убедитесь, что у вас есть:
- Приложение для iOS с включенными push-уведомлениями.
- Integrated the SDK.
- При внедрении рекомендуемого решения на основе OneLink вам потребуется имя ключа в полезной нагрузке push-уведомления, содержащего OneLink (предоставляется маркетологом приложения).
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() }
-
Реализуйте делегат
UNUserNotificationCenter
delegate. In thedidReceive
вызовитеhandlePushNotification
:@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:- В полезной нагрузке присутствует необходимый ключ.
- Ключ содержит действительный URL OneLink.
Примечание
addPushNotificationDeepLinkPath
accepts an array of strings too, to allow you to extract the relevant key from nested JSON structures. For more information, seeaddPushNotificationDeepLinkPath
.
Изменения сохранены 10 месяцев назад