6

Я создаю приложение для Android и iPhone. Это приложение должно получать уведомления о новых сообщениях во входящих почтовых ящиках пользователя. Будучи полным noob в приложении dev, мне было интересно, может ли кто-нибудь из вас предложить лучший способ реализовать то, что мне нужно здесь.Рекомендуемый способ реализации Push-уведомлений

Я читал больше на Android, чем iPhone, поэтому мое понимание последнего может быть желательным. Основываясь на том, что я прочитал и понял, я считаю, что мне нужно будет начать сервис, когда мое приложение запускается в первый раз (или поручить устройству запускать службу каждый раз, когда устройство запускается или что-то еще). Затем эта служба будет взаимодействовать с сервером для получения уведомлений и отображения их. Нажав на уведомление, вы запустите приложение.

Мои варианты

  1. C2DM или APNS

  2. Городские дирижабль

  3. Мой собственный сервер, используя в основном незанятое соединение TCP с клиентом.

В зависимости от варианта, который я выбираю, меня реализует реализация на стороне клиента, а также реализация на стороне сервера.

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

Любая помощь очень ценится.

Update:

Опираясь на jbat100 ответ. Тот факт, что Apple не позволяет мне писать собственный сервер для непосредственного общения с моим приложением для уведомлений, означает, что APNS необходимо использовать. Таким образом, вариант 3 полностью отсутствует. Это означает, что мы остаемся либо с Urban Airship, либо напрямую связаны с APNS и C2DM. Основываясь на моих исследованиях, усилия, связанные с обоими случаями, сопоставимы, поэтому не имеет смысла выкладывать дополнительные 4-5K/mo для поддержки уведомления. Поэтому я планирую реализовать вариант 1. Если кто-либо из вас думает иначе, оставьте комментарии ниже.

Спасибо.

+0

Я думаю, что вы можете очень просто написать свой собственный сервер APNS. Это очень просто, проверьте это https://github.com/matejkramny/apn-server –

ответ

2

Их придется обрабатывать отдельно. В случае push-уведомлений iOS вам придется пройти службу уведомления Apple Push (Руководство по программированию here), у них есть очень специфический протокол, который ваш сервер должен будет соответствовать тому, который описан в Provider Communication with Apple Push Notification Service. Не знаю о Android, он, вероятно, будет совсем другим, менее централизованным.

+0

Это отвечает на часть моего вопроса. Это означает, что APNS является единственным способом для устройств iOS. – spicavigo

0

C2DM был бы самым легким, возможно. Но, я думаю, вы также можете попробовать Urban Ship. Реализация собственного сервера - это боль.

1

На основе ответа jbat100. Тот факт, что Apple не позволяет мне писать собственный сервер для непосредственного общения с моим приложением для уведомлений, означает, что APNS необходимо использовать. Таким образом, вариант 3 полностью отсутствует. Это означает, что мы остаемся либо с Urban Airship, либо напрямую связаны с APNS и C2DM. Основываясь на моих исследованиях, усилия, связанные с обоими случаями, сопоставимы, поэтому не имеет смысла выкладывать дополнительные 4-5K/mo для поддержки уведомления. Поэтому я планирую реализовать вариант 1. Если кто-либо из вас думает иначе, оставьте комментарии ниже.

0

Моя ситуация очень похожа, и я сначала выпустил приложение для Android, и теперь я работаю над приложением iOS.Для Android я реализовал push-уведомления с использованием C2DM, и я отправляю уведомления из своего приложения Google App Engine (GAE). C2DM в основном требует отправки HTTP-сообщений на сервер Google. Итак, вы отправляете HTTP POST по URL https://android.apis.google.com/c2dm/send.

Для iOS требуется выделенное TCP-соединение на проприетарном порту, а среда GAE не позволяет использовать внешний протокол, кроме HTTP, через порт 80. Таким образом, я много исследовал, и кажется, что это был городской дирижабль. Они предоставляют HTTP-интерфейс, доступ к которому я могу получить из среды GAE, и они преобразуют это в протокол, который понимают серверы Apple. Их цена кажется запутанной, хотя - 1 миллион бесплатных уведомлений в месяц и десятая часть процента за уведомление после этого. Это bizzare, потому что они дают 1000 долларов в месяц бесплатно? Очень экономично странно. Я подумываю о том, чтобы попробовать их, но я думаю, что лучшая альтернатива большого объема - просто использовать свою собственную реализацию и развернуть ее на AWS Amazon или купить другой дешевый сторонний хостинг.

0

Важно: C2DM официально устарел по состоянию на 26 июня 2012 года. Это означает, что C2DM прекратил прием новых пользователей и запросы квот. Никакие новые функции не будут добавлены в C2DM. Однако приложения, использующие C2DM, будут продолжать работать. Существующим разработчикам C2DM рекомендуется перейти на новую версию C2DM, называемую Google Cloud Messaging для Android (GCM). Дополнительную информацию см. В документе миграции C2DM-GCM. Разработчики должны использовать GCM для новой разработки.

0

Я не могу пролить свет на сторону Android, но могу сказать, что недавно установил невероятно простое приложение Rails на Heroku, которое отправляет push-уведомления в мое приложение iOS через APNS. Я использовал жемчужину houston и получал push-уведомления в своем приложении iOS менее чем за 20 минут после того, как начал работу.

Смежные вопросы