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

iOS SDK: Часто задаваемые вопросы

Часто задаваемые вопросы по интеграции с iOS

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-уведомления?

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. Введите имя таргета и нажмите 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 для моего основного таргета и Notification Service Extension?

Anchor link to

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

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

Anchor link to

В Info.plist вашего основного таргета добавьте ключ 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

Доступ к полезной нагрузке объекта 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. Самый простой способ проверить это — открыть mobile provisioning profile в любом текстовом редакторе и найти строку aps-environment. Она должна там быть.

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

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

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

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

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”:

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

Anchor link to

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