Nano Hash - криптовалюты, майнинг, программирование

FCM/IOS, как узнать, нажал ли пользователь на оповещение об уведомлении или мы получили уведомление напрямую?

на iOS 9 и более ранних версиях, когда пользователь нажимает на уведомление, происходит событие applicationDidReceiveRemoteNotification, но когда приложение находится на переднем плане, уведомление сразу поступает в приложение без показ любого оповещения конечному пользователю, а также вызывается событие applicationDidReceiveRemoteNotification :(

Итак, как узнать, нажимает ли пользователь уведомление (возможно, старое) или мы получаем уведомление сразу, потому что приложение было на переднем плане?


Ответы:


1

Вы можете проверить состояние приложения следующим образом.

if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateActive) {
    // Just received notification (Foreground)
} else if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateInactive) {
    // launched by taping notification
} else if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) {
    // Just received notification (Background)
}
13.05.2017
  • нет, это вообще не работает, applicationDidReceiveRemoteNotification также вызывается при запуске приложения и их ожидающем сообщении с данными в очереди 14.05.2017
  • Да, 'applicationDidReceiveRemoteNotification' всегда вызывается, но вы можете проверить состояние приложения, чтобы определить, было ли нажато или получено уведомление. Надеюсь, я правильно понял ваш вопрос. 15.05.2017
  • 'applicationDidReceiveRemoteNotification' Можете ли вы опубликовать свой код функции? 15.05.2017
  • наконец-то все в порядке, просто смотрю, есть ли узел aps или нет :) 15.05.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..