Уведомление о дружбе в реальном времени на устройстве получателя - PullRequest
0 голосов
/ 09 марта 2012

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

У меня проблемы с методом Push-уведомлений для отправки запросов

  1. Если устройство отключено, будет обработано только последнее уведомление

  2. Если приложение не запущено, push-уведомление будет доставлено в Уведомлениях, и я не знаю, как мне извлечь информацию оттуда в мое приложение.

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

Можно ли как-то отправить информацию на устройство, как только она станет доступна? Любые предложения будут оценены

Ответы [ 4 ]

2 голосов
/ 12 марта 2012

Уведомления - это одна из вещей, которая может разряжать батарею, если вы выбираете маршрут опроса, и это одна из причин, по которой Apple разработала Push-уведомления.Я бы порекомендовал постараться использовать Apple Push-уведомление как можно больше, поскольку оно было бы оптимизировано до чертиков.Если у вас разные потоки, когда приложение активно и когда приложение не активно (рег. Уведомления), вы можете сделать это следующим образом -

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    if(application.applicationState == UIApplicationStateActive) {
        // app active.
    }
    else {
        // app not active
    }
}

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

Pusher имеет библиотеку Objective-C и REST API (вместе с номером из библиотек ), которые позволят вам загружать обновления с вашего сервера в реальном времени в приложение для iOS.

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

Все это лучше, чем опрос.

2 голосов
/ 12 марта 2012

Вы смотрели на Городской дирижабль ?

У них есть отличная структура, настроенная для постановки в очередь и получения push-уведомлений, даже когда ваше приложение находится в автономном режиме. Вы можете поставить уведомление в очередь из самого приложения или с вашего сервера, на котором размещены данные вашей учетной записи. У них также есть возможность создавать и отправлять уведомления с расширенным содержанием.

Базовая учетная запись для небольших приложений получает 1 миллион бесплатных push-уведомлений в месяц. Все, что за этим, - доли копейки.

Надеюсь, это поможет, ура!

1 голос
/ 12 марта 2012

Обычно вы используете push-запрос как средство информирования вашего приложения о доступности новых данных. Пользователь нажимает на push-уведомление - приложение открывается с

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 

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

1 голос
/ 12 марта 2012

Можно ли как-то отправить информацию на устройство, как только она станет доступна?Будем благодарны за любые предложения

user1 хочет добавить пользователя 2. как друга.

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

...