Swift / iOS, какой механизм уведомлений самый надежный? - PullRequest
0 голосов
/ 01 марта 2019

В настоящее время мы разрабатываем приложение для iOS на основе Swift 4. Приложение iOS получает некоторые очень важные уведомления, которые должны поступать настолько быстро и максимально надежно, насколько это возможно, даже если приложение не активно (например, в фоновом режиме).

Итак, мы сейчас спрашиваем себя, какой механизм уведомлений лучше всего использовать.Мы рассматриваем следующее:

  • Apple Push-уведомления, которые непосредственно показывают уведомление пользователю
  • Apple Silent Push-уведомления, которые создадут LocalNotification
  • MQTT (ноЯ думаю, это не работает в фоновом режиме?)
  • Apple PushKit для VoiP

Можете ли вы помочь нам в этом?Насколько некоторые интернет-исследования показали, что Apple PushKit кажется наиболее надежным.Но можем ли мы его использовать, хотя в нашем приложении нет функции voip?

Огромное спасибо за вашу помощь.

Best, mooonli

1 Ответ

0 голосов
/ 01 марта 2019

РЕДАКТИРОВАТЬ (после некоторой дополнительной информации)

Хорошо, после прочтения вашего варианта использования, я действительно думаю, что мы можем значительно упростить это и при этом использовать очень надежный подход.

Допущения:

  • Вероятно, iPad для пользователей будет принадлежать больнице, и у них не возникнет проблем с получением уведомлений, поскольку они являются только отправителями.
  • Телефоны медсестерс другой стороны, он может быть преднамеренно или непреднамеренно настроен на получение или отсутствие уведомлений)
  • На самом деле вы не выполняете никаких критических действий в приложении на основе уведомления, вам просто нужна медсестра, чтобы воздействовать на него

Учитывая это, я предлагаю вам использовать обычные push-уведомления и SMS-уведомления в качестве резервной копии.

  1. Когда пользователь нажимает на ipad, чтобы сказать, что он голоден /испытывающий жажду / боль, ваш сервер получает этот запрос и запускает push-уведомление.
  2. Теперь ваш сервер запускает таймер, когда он должен ожидатьping говорит, что уведомление было прочитано (медсестра открывает приложение из-за уведомления).
  3. Если бэкэнд не получает пинг в течение 1 минуты (или какой бы ни был ваш порог), ваш бэкэнд теперь запускает SMS-сообщение, котороеНоситель доставлен.
  4. Если ваш бэкэнд все еще не получил пинг, вы повторяете шаги 2 и 3, но отправляете вторичному контакту (старшая медсестра ?, доктор?)
  5. Когда приложение открывается, выполучить все ожидающие уведомления и сделать все, что вам нужно (попросить медсестру подтвердить получение или подтвердить действие)
  6. Вы можете даже создать аварийную резервную копию, если пинг никогда не происходил в течение максимального периода времени (30 мин.?1 час?), Ipad для пользователя показывает предупреждающее сообщение с просьбой использовать физическую кнопку «вызвать медсестру».
  7. Вы можете инвертировать приоритеты на основе действий, запрошенных пользователем (сначала SMS для «в боли»)триггеры, нажмите для всех остальных).

Вы можете определенно доверять услуге push, так как она очень надежна и предоставляет вам некоторые отладочные данные, но просто убедитесь, что у вас есть запасной метод иотступление от метода резервирования: P


Оригинальный ответ

Сначала вы должны спросить себя, почему для вашего приложения так важно получать уведомление.Что вам действительно нужно для достижения того, чего вы не можете сделать, когда пользователь открывает приложение.

Вы никогда не должны полагаться на уведомления для выполнения важных действий в вашем приложении, одно уведомление - это просто часть информации.пользователю.Это никогда не должно быть формой выполнения критических действий.Конечно, вы можете всеми указанными вами методами выполнять действия после получения уведомления, но это должны быть только те действия, которые могут помочь вашему приложению выполнять какую-то логику быстрее, чем при ручном запуске.

MakeУбедитесь, что вы разработали свое приложение таким образом, чтобы критическая информация, которая должна постоянно запускаться, могла выполняться несколькими способами.Таким образом, вы можете запускать, нажимая или молча нажимая, если это не сработало, пользователь получит электронное письмо с просьбой сделать что-то, что откроет приложение и запустит его вручную, и т.д ...

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

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

Извините, если это не помогло с точки зрения того, что вы на самом деле искали, но я уже былчасть двух основных приложений, которые «полагались» на уведомления для выполнения задач, и у нас всегда было много проблем, пытаясь найти обходные пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...