Вызов кода уведомления (принудительное закрытие приложения)

Мне было интересно, как приложения, такие как Whatsapp, могли предоставить квитанцию ​​доставки (двойную зеленую проверку) отправителю сообщения.

Я видел, что даже если вы принудительно завершаете Whatsapp (с помощью переключателя задач приложения и отбрасывая приложение), отправитель по-прежнему получает квитанцию ​​доставки (двойная зеленая проверка) только в тот момент, когда на телефон поступает push-уведомление. Очевидно, что они могут выполнять код (делать запрос на бэкэнд, сообщая о доставке) при получении push-уведомления.

С iOS7 можно отправить полезную нагрузку push-сообщения с «content-available»: 1, это позволяет получателю уведомления выполнять код пользователя, поэтому, во-первых, я думал, что они используют эту функцию. Однако, если пользователь принудительно покидает приложение, тогда код пользователя не выполняется при получении уведомления. Из-за этого я не могу имитировать поведение Whatsapp.

Я включил возможности> Режимы фона и проверил удаленные уведомления.

Я обрабатываю уведомление с помощью этого метода:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler 

Я отправляю уведомление с этой полезной нагрузкой:

 { "aps":{ "alert":"Hello world", "sound":"MySound.wav", "content-available":1 } } 

Я уже проверил:

  • Будет ли iOS запускать мое приложение в фоновом режиме, если оно будет принудительно закрыто пользователем?
  • Видео WWDC Что нового в многозадачности (№ 204 от WWDC 2013)

Я также читал о PushKit (хотя я и не пробовал), что, возможно, может помочь здесь, но я понимаю, что приложение должно быть VOIP-приложением. Очевидно, что я не хочу требовать от VOIP моего приложения просто выполнять код при получении push-уведомления.

Благодарю.

One Solution collect form web for “Вызов кода уведомления (принудительное закрытие приложения)”

Вы просто ответили на свой вопрос в своем описании.

  1. Невозможно разбудить приложение через регулярное push-уведомление, если оно было принудительным.

    См. Руководство по программированию приложений для iOS :

    В большинстве случаев система не перезапускает приложения после того, как пользователь принудительно завершает работу. Одним из исключений являются приложения местоположения, которые в iOS 8 и более поздних версиях перезапускаются после принудительного завершения пользователем. В других случаях, однако, пользователь должен явно запустить приложение или перезагрузить устройство, прежде чем приложение сможет автоматически запускаться в фоновом режиме системой.

  2. Уведомления VoIP Push могут разбудить приложение, даже если оно было принудительным.

    См. Рекомендации по переходу по IP-адресу (VoIP) :

    Ваше приложение автоматически перезапускается, если оно не работает при приеме VoIP-сигнала.

  3. Две синие метки в WhatsApp означают, что получатель читает сообщение. Если вы получили две синие метки, сразу после получения push-уведомления это ошибка дизайна или ошибка в WhatsApp, поскольку вы не можете сказать, если пользователь действительно прочитал уведомление. Если вы получаете две серые метки, это означает, что сообщение было доставлено на устройство. Опять же, если вы получили две серые метки, сразу после получения push-уведомления и приложения было принудительно закрыто, либо WhatsApp (ошибочно) использует VoIP push для этого, либо они просто предполагают, что push был доставлен или будет доставлен.

  • Уведомление FCM для ios
  • Регенерация сертификата APNS iOS; Идентификация устройств?
  • Phonegap - поддержка push-уведомления
  • Пользовательское звуковое уведомление iOS
  • Возможно ли, чтобы приложение iOS программно узнало, когда на устройство поступило предупреждение APNS?
  • Спутни ...
  • Push Notification Issue в Adhoc Distribution
  • Уведомление об отправке ios с помощью firebase
  • Возможно ли отладить мое приложение с профилем обеспечения adhoc в Xcode?
  • Не показывать баннер только вибрировать устройство при получении push-уведомления
  • Программа Apple watchOS 3 завершилась с кодом выхода 0: удалил удаленное уведомление
  • Interesting Posts

    Как загрузить XIB с помощью верхнего уровня ViewController?

    как скомпилировать и использовать objc runtime из исходного кода Apple?

    Вращение Arcball с кватернионами (с использованием iOS GLKit)

    Как настроить аудио настройки для AVCaptureAudioDataOutput в iOS

    Почему рекомендуется выполнять регистрацию registerUserNotificationSettings перед регистрацией с помощью службы push-уведомлений

    Изменение содержимого при загрузке UIWebView внутри ScrollView

    быстрый цикл анимации цвета фона

    RLMException, требуется миграция для типа объекта

    Посоветуйте, как реализовать слайд-шоу изображений / карусель? (iOS)

    AirPrint: запретить пользователю печатать только на принтерах, поддерживающих TLS

    Как изменить размер UITableView в соответствии с его содержимым?

    Не удается создать тестер изолированной песочницы itunesconnect

    Может ли KIF настроить компоненты UIWebView?

    Как настроить проект PhoneGap в WebStorm

    Как показать HTML-текст из API на iPhone?

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.