Перейти к содержанию

FAQ по iOS SDK

FAQ по интеграции iOS SDK

Anchor link to

В: Как я могу установить Pushwoosh SDK в свой iOS-проект?

Anchor link to

Вы можете интегрировать Pushwoosh SDK с помощью Swift Package Manager или CocoaPods.

В: Как установить Pushwoosh SDK с помощью Swift Package Manager?

Anchor link to

В Xcode перейдите в раздел Package Dependencies и добавьте пакет, используя следующий URL: https://github.com/Pushwoosh/Pushwoosh-XCFramework.

В: Как установить Pushwoosh SDK с помощью CocoaPods?

Anchor link to

Откройте Podfile вашего проекта и добавьте строку pod 'PushwooshXCFramework'. Затем выполните команду pod install в терминале.

В: Какие capabilities мне нужно добавить в проект, чтобы включить Push Notifications?

Anchor link to

В разделе Signing & Capabilities настроек вашего проекта необходимо добавить capabilities Push Notifications и Background Modes. При добавлении Background Modes убедитесь, что вы отметили флажок Remote notifications.

В: Какая дополнительная capability требуется для Time Sensitive Notifications?

Anchor link to

Если вы собираетесь использовать Time Sensitive Notifications (iOS 15+), вам также необходимо добавить capability Time Sensitive Notifications.

В: Куда нужно добавить код инициализации Pushwoosh?

Anchor link to

Код инициализации необходимо добавить в ваш класс AppDelegate.

В: Какой код инициализации следует добавить в AppDelegate для SwiftUI?

Anchor link to

Пожалуйста, обратитесь к предоставленному примеру кода Swift для интеграции Pushwoosh в проект SwiftUI.

В: Какой код инициализации следует добавить в стандартный AppDelegate на Swift?

Anchor link to

Пожалуйста, обратитесь к предоставленному примеру кода Swift для интеграции Pushwoosh в стандартный проект Swift.

В: Какой код инициализации следует добавить в AppDelegate на Objective-C?

Anchor link to

Пожалуйста, обратитесь к предоставленному примеру кода Objective-C для интеграции Pushwoosh в проект Objective-C.

В: Какие ключи мне нужно добавить в файл Info.plist?

Anchor link to

Вам необходимо добавить ключ Pushwoosh_APPID со значением вашего Application Code и ключ PW_API_TOKEN со значением вашего API Token в файл Info.plist вашего приложения.

В: Какова цель отслеживания доставки сообщений?

Anchor link to

Pushwoosh поддерживает отслеживание событий доставки для push-уведомлений с помощью Notification Service Extension.

В: Как добавить Notification Service Extension в мой проект?

Anchor link to

В Xcode перейдите в File > New > Target…, выберите Notification Service Extension и нажмите Next. Введите имя target и нажмите Finish. Когда появится запрос на активацию, нажмите Cancel.

В: Как добавить Pushwoosh SDK в Notification Service Extension?

Anchor link to

Добавьте предоставленный фрагмент кода Swift или Objective-C в главный файл .swift или .m вашего Notification Service Extension. Этот код использует PWNotificationExtensionManager для обработки запроса уведомления.

В: Какова цель App Groups?

Anchor link to

Capability App Groups необходима, чтобы позволить Notification Service Extension общаться с основным приложением.

В: Как включить App Groups для моего основного target и Notification Service Extension?

Anchor link to

Для обоих targets перейдите в Signing & Capabilities, добавьте capability App Groups и создайте новую группу, нажав кнопку +. Убедитесь, что имя группы начинается с group. и используйте одно и то же имя группы для обоих targets.

В: Какие ключи мне нужно добавить в Info.plist моего основного target для App Groups?

Anchor link to

В Info.plist вашего основного target добавьте ключ PW_APP_GROUPS_NAME и установите его значение равным имени вашей группы App Groups.

В: Какие ключи мне нужно добавить в Info.plist моего Notification Service Extension?

Anchor link to

В Info.plist вашего Notification Service Extension добавьте ключ PW_APP_GROUPS_NAME (установите его равным имени вашей группы App Groups) и ключ Pushwoosh_APPID (установите его равным вашему Application Code).

В: Как проверить интеграцию Pushwoosh?

Anchor link to

После сборки и запуска вашего проекта перейдите в Pushwoosh Control Panel и отправьте push-уведомление в ваше приложение. Вы должны увидеть, как уведомление появится на вашем устройстве.

В: Каковы два основных колбэка для обработки push-уведомлений в Pushwoosh SDK?

Anchor link to

Два основных колбэка — это onMessageReceived и onMessageOpened.

В: Когда вызывается колбэк onMessageReceived?

Anchor link to

Метод onMessageReceived вызывается, когда приложение получает push-уведомление.

В: Когда вызывается колбэк onMessageOpened?

Anchor link to

Метод onMessageOpened вызывается, когда пользователь взаимодействует с push-уведомлением и открывает его.

В: Как я могу получить доступ к payload полученного или открытого push-уведомления?

Anchor link to

Доступ к payload объекта PWMessage (передаваемого в колбэки onMessageReceived и onMessageOpened) можно получить через его свойство payload.

В: Как установить User ID в Pushwoosh?

Anchor link to

Используйте метод setUserId(_:) объекта Pushwoosh.sharedInstance(), передавая ID пользователя в качестве аргумента.

В: Как установить адрес электронной почты пользователя в Pushwoosh?

Anchor link to

Используйте метод setEmail(_:) объекта Pushwoosh.sharedInstance(), указав email пользователя.

Как я могу установить дополнительную информацию о пользователе в виде тегов в Pushwoosh?

Anchor link to

Используйте метод setTags(_:) объекта Pushwoosh.sharedInstance(), передав словарь, где ключи — это имена тегов, а значения — соответствующие значения тегов.

Как я могу отслеживать событие пользователя с дополнительными атрибутами?

Anchor link to

Используйте метод postEvent(_:withAttributes:) объекта PWInAppManager.shared(), указав имя события (например, "login") и словарь атрибутов (например, "name", "last_login").

В: Как я могу отслеживать событие покупки пользователя с деталями продукта?

Anchor link to

Используйте метод postEvent(_:withAttributes:) объекта PWInAppManager.shared() с именем события "purchase" и словарем, содержащим детали продукта, такие как "product_id", "product_name", "price" и "quantity".

В: Как настроить делегат для обработки отображения rich media?

Anchor link to

В вашем view controller или другом подходящем классе реализуйте протокол PWRichMediaPresentingDelegate и установите свойство delegate объекта PWRichMediaManager.shared() равным вашему экземпляру, соответствующему протоколу.

В: Как я могу настроить стиль отображения rich media?

Anchor link to

Используйте объект PWModalWindowConfiguration.shared() для настройки таких свойств, как положение модального окна и анимации появления/скрытия, с помощью метода configureModalWindow(with:present:dismiss:).

В: К какой информации я могу получить доступ в методах делегата rich media?

Anchor link to

Методы делегата предоставляют доступ к объекту PWRichMedia, который содержит информацию о контенте rich media, включая его pushPayload. Метод presentingDidFailForRichMedia:withError: также предоставляет объект Error, описывающий сбой.

Устранение неполадок

Anchor link to

В: Ошибка «Your provisioning profile does not have APS entry»

Anchor link to

Если вы видите сообщение об ошибке «Your provisioning profile does not have APS entry.», убедитесь, что ваш provisioning profile совместим с push-уведомлениями и содержит строку aps-environment со значением production или development. Самый простой способ проверить это — открыть мобильный provisioning profile в любом текстовом редакторе и найти строку aps-environment. Она должна там быть.

Если она есть, а вы продолжаете получать ошибку, это означает, что XCode все еще выбирает профиль, «несовместимый с push-уведомлениями». Пожалуйста, убедитесь, что вы подписываете приложение правильным профилем — иногда, если у вас есть два профиля для одного и того же App ID, XCode путается и подписывает старым.

Рекомендуемые шаги:

  1. Удалите все профили в XCode;
  2. Добавьте один-единственный новый профиль;
  3. Пересоберите приложение.

В: Как выглядят push-токен iOS и hwid?

Anchor link to

Push-токены устройств iOS — это строки из 64 шестнадцатеричных символов. Пример push-токена:
03df25c845d460bcdad7802d2vf6fc1dfde97283bf75cc993eb6dca835ea2e2f
Убедитесь, что push-токены iOS, которые вы используете при таргетинге на конкретные устройства в ваших API-запросах, указаны в нижнем регистре.

Pushwoosh использует IDFV в качестве HWID устройства. Обратите внимание, что он может измениться, если пользователь переустановит все приложения от определенного поставщика.

CBAF8ED1-17FB-49A3-73BD-DC79B63AEF93

В: Как включить или выключить баннер, когда мое приложение запущено?

Anchor link to

По умолчанию наш последний iOS SDK отображает баннер уведомления, когда приложение работает в активном режиме.
Вы можете управлять этим поведением, изменяя следующие флаги в Info.plist:

Флаг Pushwoosh_ALERT_TYPE – тип string, значения:

  • BANNER – значение по умолчанию, отображает баннерное оповещение в приложении
  • ALERT – оповещение типа alert
  • NONE – не показывать уведомления, когда приложение находится в активном режиме

В: Как получить push-токен моего iOS-устройства для использования в Test Devices?

Anchor link to

Чтобы получить push-токен вашего iOS-устройства,

  1. Откройте Xcode => Devices & Simulators;
  2. Подключите тестовое устройство к вашему компьютеру;
  3. Выберите ваше подключенное устройство в списке устройств слева;
  4. Нажмите кнопку Open Console.

Запустите приложение, для которого вам нужен push-токен устройства, и найдите ваш 64-символьный шестнадцатеричный push-токен устройства в строке «Registered for push notifications»:

В: Почему бейджи не сбрасываются после того, как я удаляю и переустанавливаю приложение в течение короткого времени?

Anchor link to

Это ожидаемое поведение — бейджи обрабатываются самой iOS, и их значения хранятся в настройках приложения, которые не удаляются мгновенно при удалении вашего приложения. Значение бейджа остается там некоторое время в случае немедленной переустановки, что приводит к отображению тех же бейджей после переустановки приложения.