2015-04-24 2 views
2

Предположим, у меня есть приложение iOS для электронной коммерции (например, snapdeal, flipkart и т. Д.), И я хочу, чтобы мое приложение было уведомлено, когда есть какие-либо изменения в данных, хранящихся на сервере.Как сделать приложение iOS осведомленным об изменениях данных на сервере без каких-либо действий пользователя?

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

это можно сделать? если ДА, как я могу это достичь?

Спасибо заранее!

+0

ну, вы бы создали систему с Parse.com, Firebase.com или PubNub.com. Вы должны стать экспертом в клиент-серверных системах. Нам повезло, что сегодня это невероятно проще, чем два года назад. TBC, конечно же, часть этой системы использует ** Push-уведомления **, как упоминает г-н Блаккус в своем ответе. – Fattie

+1

Почему бы не опросить сервер в фоновом режиме, когда пользователь начинает использовать приложение? В чем преимущество обновления, когда приложение находится в фоновом режиме, и пользователь даже не использует приложение? – trojanfoe

ответ

4

Чтобы сделать это, вы должны использовать Apple Push Notification Service.

Это позволяет серверу передавать данные в приложение, , что предупреждает пользователя или нет (Вы выбираете), и ваше приложение просыпаются этим протолкнуть может работать на фоновом режиме.

Для того, чтобы позволить вам приложение работать в фоновом режиме, вы должны включить фона принести варианты

От Apple Background execution guide:

Программы, которые необходимо проверить новое содержание может периодически просить систему чтобы разбудить их, чтобы они могли инициировать операцию выборки для этого содержимого. Чтобы поддержать этот режим, включите опцию Фоновая выборка из раздела «Фоновые режимы» на вкладке «Возможности» в вашем проекте Xcode. (Вы можете также включить эту поддержку, включив ключ UIBackgroundModes с выборки значения в файле Info.plist вашего приложения.)

Редактировать о Баас

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

Именно поэтому вы можете использовать Баас (Backend как услуга), что обрабатывать толчок уведомление для вас, как Parse.com, Firebase или что вы хотите. Это упрощает процесс, но он остается APNS на обратной стороне, поэтому важно понять, как это работает.

+0

OP не хочет, чтобы пользователь уведомлялся; только приложение. Поэтому в чем смысл? – trojanfoe

+3

Вы можете отправить push-уведомление без предупреждения – hypercrypt

+0

@JoeBlow Yep, вы правы. Как только вы узнаете, что вам нужно использовать APNS, вы можете выбрать BaaS, который хотите, если вы не хотите его реализовывать самостоятельно, но важно понять, как это работает, если вы хотите сделать это правильно. – Blackus

-1

1.) Опрос - приложение запрашивает список продуктов, цены на которые изменились. Вы можете настроить таймер, который запускается после каждого X секунд.

2.) Подключение к разъему - между приложением и сервером. Приложение может генерировать уникальный токен (например, identifierForVendor) и использовать его в сокетном подключении. Сервер не может определить все приложения (используя этот токен), чтобы уведомить об измененных ценах.

Подход 2 лучше, поскольку он менее дорог (с точки зрения сетей).

Надеюсь, это поможет.

+1

Невероятно, что вы «опросили» в такой ситуации в этот день и в возрасте. Вы можете также предложить написать машинный код с нуля, чтобы открыть кнопку на iOS. – Fattie

1

Я бы рекомендовал, как сказал г-н Блэксу в своем ответе, использовать службу Apple Push Notification.Однако я добавлю один бит информации -

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

Процесс должен быть что-то вроде этого:

  1. Сервер запрашивает службу Apple, чтобы отправить уведомление принудительную ваше приложение.
  2. Приложение получает push-уведомление (но не имеет значка для пользователя).
  3. Приложение интерпретирует данные, отправленные с сервера в качестве уведомления об обновлении данных.
  4. Пожар POST или GET запрос при определении типа полученного уведомления.
  5. Обновите свои данные из ответа на запрос.
+1

@JoeBlow. Само собой разумеется, вы можете использовать сторонние библиотеки для обработки большого количества этого процесса для вас, но я думаю, что важно понять базовый процесс, чтобы разработчик отвечал требованиям специально для своих нужд. – Chackle

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