Подключение и инициализация
- Шаг 1. Подключите библиотеку
- Шаг 2. Зарегистрируйте приложение в Apple Push Notification Service (APNs)
- Шаг 3. Зарегистрируйте device token вашего приложения
- Шаг 4. Настройте обработку открытия push-уведомления
- Шаг 5. (Опционально) Включите актуализацию push-токенов
- Шаг 6. (Опционально) Настройте загрузку прикрепленных файлов
- Шаг 7. (Опционально) Настройте сбор статистики push-уведомлений
- Отправка дополнительной информации
- Определение получателя уведомления
Перед началом работы с AppMetrica Push SDK версии 2.0.0 необходимо подключить и инициализировать AppMetrica SDK не ниже версии 5.0.0.
Шаг 1. Подключите библиотеку
Библиотека может работать со следующими системами управления зависимостями:
Чтобы подключить библиотеку Push SDK, добавьте в Podfile проекта зависимости:
pod 'AppMetricaPush', '~> 2.0.0' # Основной модуль для работы с Push SDK, обязателен для подключения
pod 'AppMetricaPushLazy', '~> 2.0.0' # Дополнительный модуль для Lazy пушей
Интеграция через интерфейс Xcode
Чтобы подключить библиотеку, выполните следующее:
-
В окне Xcode навигатора проектов (Project Navigator) выберите свой проект (если у вас используется Workspace). Затем в верхнем меню нажмите File и выберите Add Package Dependencies....
-
Укажите URL репозитория
https://github.com/appmetrica/push-sdk-ios
. -
Оставьте только нужные модули (чтобы выключить модуль в
Add to Target
выберите значениеNone
):AppMetricaPush
— обязательный основной модуль Push SDK. Должен быть подключен для работы.AppMetricaPushLazy
— дополнительный модуль для Lazy пушей.
Интеграция через Package.swift манифест
Для начала добавьте следующую зависимость в массив dependencies:
вашего пакета:
dependencies: [
.package(
url: "https://github.com/appmetrica/push-sdk-ios",
from: "2.0.0"
)
],
Модули AppMetrica Push SDK, которые вы можете подключить в зависимости от потребностей вашего проекта:
AppMetricaPush
— обязательный основной модуль Push SDK. Должен быть подключен для работы.AppMetricaPushLazy
— дополнительный модуль для Lazy пушей.
Пример подключения модулей в массиве dependencies:
таргета:
.target(
name: "MyTargetName",
dependencies: [
.product(name: "AppMetricaPush", package: "push-sdk-ios"),
// .product(name: "AppMetricaPushLazy", package: "push-sdk-ios"), // Этот модуль отлючен
]
),
Шаг 2. Зарегистрируйте приложение в Apple Push Notification Service (APNs)
Регистрация необходима для подготовки приложения к работе с push-уведомлениями. Для отправки уведомлений на устройства с iOS добавьте следующие изменения в код приложения:
let center = UNUserNotificationCenter.current()
center.requestAuthorization(options:\[.badge, .alert, .sound\]) { (granted, error) in
// Enable or disable features based on authorization.
}
application.registerForRemoteNotifications()
Как правило, эти данные передаются в следующем методе:
func application(_ application: UIApplication, didFinishLaunchingWithOptions
launchOptions: [UIApplicationLaunchOptionsKey :Any]? = nil) -> Bool
Подробно об используемых методах в документации на developer.apple.com
:
UNAuthorizationOptions options =
UNAuthorizationOptionAlert |
UNAuthorizationOptionBadge |
UNAuthorizationOptionSound;
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center requestAuthorizationWithOptions:options completionHandler:^(BOOL granted, NSError *error) {
// Enable or disable features based on authorization.
}];
[application registerForRemoteNotifications];
Как правило, эти данные передаются в следующем методе:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
Подробно об используемых методах в документации на developer.apple.com
:
Шаг 3. Зарегистрируйте device token вашего приложения
Для отправки push-уведомления с помощью AppMetrica необходим device token вашего приложения. Чтобы зарегистрировать его:
Добавьте следующий код в AppDelegate
:
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
{
// If the AppMetrica SDK library was not initialized before this step,
// calling the method causes the app to crash.
AppMetricaPush.setDeviceTokenFrom(deviceToken)
}
Добавьте следующий код в вашу реализацию UIApplicationDelegate
:
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
// If the AppMetrica SDK library was not initialized before this step,
// calling the method causes the app to crash.
[AMPAppMetricaPush setDeviceTokenFromData:deviceToken];
}
Чтобы зарегистрировать device token и отправить окружение APNs, используйте следующий код:
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
{
// If the AppMetrica SDK library was not initialized before this step,
// calling the method causes the app to crash.
#if DEBUG
let pushEnvironment = AppMetricaPushEnvironment.development
#else
let pushEnvironment = AppMetricaPushEnvironment.production
#endif
AppMetricaPush.setDeviceTokenFrom(deviceToken, pushEnvironment: pushEnvironment)
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
// If the AppMetrica SDK library was not initialized before this step,
// calling the method causes the app to crash.
#ifdef DEBUG
AMPAppMetricaPushEnvironment pushEnvironment = AMPAppMetricaPushEnvironmentDevelopment;
#else
AMPAppMetricaPushEnvironment pushEnvironment = AMPAppMetricaPushEnvironmentProduction;
#endif
[AMPAppMetricaPush setDeviceTokenFromData:deviceToken pushEnvironment:pushEnvironment];
}
Внимание
AppMetrica позволяет отправлять push-уведомления в Sandbox APNs. Но обработка push-уведомлений может работать некорректно, если на устройстве запускались версии приложения с разным окружением (development и production). Чтобы избежать этого, можно использовать отдельный тестовый API key для development окружения.
Шаг 4. Настройте обработку открытия push-уведомления
Настройте обработку открытия push-уведомления:
-
Воспользуйтесь делегатом
UserNotificationCenterDelegate
/AMPUserNotificationCenterDelegate
. Он обрабатывает получение push-уведомлений автоматически, при их открытии.Внесите следующие изменения в код:
SwiftObjective-Cimport UserNotifications // In the "func application(_ application: UIApplication, didFinishLaunchingWithOptions // launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool" method: let delegate = AppMetricaPush.userNotificationCenterDelegate UNUserNotificationCenter.current().delegate = delegate
#import <UserNotifications/UserNotifications.h> // In the "- (BOOL)application:(UIApplication *)application // didFinishLaunchingWithOptions:(NSDictionary *)launchOptions" method: [UNUserNotificationCenter currentNotificationCenter].delegate = [AppMetricaPush userNotificationCenterDelegate];
Чтобы отслеживать открытие и другие действия с push-уведомлениями, создайте собственный делегат
UNUserNotificationCenterDelegate
и добавьте его вnextDelegate
:SwiftObjective-CAppMetricaPush.userNotificationCenterDelegate.nextDelegate = yourDelegate
[AMPAppMetricaPush userNotificationCenterDelegate].nextDelegate = yourDelegate;
После этого можно использовать соответствующие методы своего делегата.
-
Если вы дополнительно используете UISceneDelegate, добавьте следующий код в метод
scene(_:willConnectTo:options:)
:SwiftObjective-Cfunc scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { AppMetricaPush.handleSceneWillConnectToSession(with: connectionOptions) }
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions { [AMPAppMetricaPush handleSceneWillConnectToSessionWithOptions:connectionOptions]; }
Шаг 5. (Опционально) Включите актуализацию push-токенов
Сервис APNS может отозвать push-токен устройства, например, если пользователь долго не запускал приложение. AppMetrica хранит push-токены на сервере и не может отправить push-уведомление на устройство с устаревшим токеном.
Чтобы автоматически собирать актуальные push-токены, перейдите в настройки приложения в веб-интерфейса AppMetrica и выберите опцию Актуализировать токены с помощью Silent Push-уведомлений во вкладке Push-уведомления.
Шаг 6. (Опционально) Настройте загрузку прикрепленных файлов
Примечание
В веб-интерфейсе push-кампаний функциональность недоступна.
Вы можете настроить загрузку прикрепленных файлов в push-уведомлениях:
- Настройте загрузку прикрепленных файлов с помощью метода downloadAttachmentsForNotificationRequest Push SDK. С примером интеграции можно ознакомиться в статье Загрузка прикрепленных файлов.
- Прикрепите вложения (параметр
attachments
) с помощью операции Отправка push-сообщений Push API.
Шаг 7. (Опционально) Настройте сбор статистики push-уведомлений
Для сбора информации о доставке push-уведомлений настройте сбор статистики по инструкции.
Отправка дополнительной информации
При необходимости вы можете передавать вместе с push-уведомлением дополнительную информацию. Эти данные указываются в веб-интерфейсе AppMetrica при настройке push-кампании. Чтобы получать эту информацию, используйте метод:
let userData = AppMetricaPush.userData(forNotification: userInfo)
NSString *userData = [AMPAppMetricaPush userDataForNotification:userInfo];
где userInfo
содержит данные о push-уведомлении.
Определение получателя уведомления
AppMetrica позволяет определить свои
push-уведомления, если в приложение были встроены несколько Push SDK.
Чтобы определить, является ли AppMetrica получателем сообщения, используйте следующий метод:
let isRelatedToAppMetricaSDK = AppMetricaPush.isNotificationRelated(toSDK: userInfo)
BOOL isRelatedToAppMetricaSDK = [AMPAppMetricaPush isNotificationRelatedToSDK:userInfo];
См. также
Если вы не нашли ответ на свой вопрос, то вы можете задать его через форму обратной связи. Пожалуйста, опишите возникшую проблему как можно подробнее. Если возможно, приложите скриншот.
Была ли статья полезна?
- Шаг 1. Подключите библиотеку
- Шаг 2. Зарегистрируйте приложение в Apple Push Notification Service (APNs)
- Шаг 3. Зарегистрируйте device token вашего приложения
- Шаг 4. Настройте обработку открытия push-уведомления
- Шаг 5. (Опционально) Включите актуализацию push-токенов
- Шаг 6. (Опционально) Настройте загрузку прикрепленных файлов
- Шаг 7. (Опционально) Настройте сбор статистики push-уведомлений
- Отправка дополнительной информации
- Определение получателя уведомления
- См. также