про push-нотификации и архитектуру

Oct 05, 2011 10:47

По работе столкнулся с задачей отправления уведомлений на телефоны. были выбраны 3 популярные платформы: windows phone 7, android и iOS.

Сначался взялся за самое как я посчитал геморойное - wp7. Запустить эмулятор wp7 задача сама по себе не тривиальная (я работаю под ubuntu) в виртуалке эмулятор просто не запускается в системных требования какие-то адские, ладно, нашли мне ноут с 7кой, поставил, стал разбираться с самими уведомлениями. Есть 3 типа: Toast, Tile и Raw, нужны первые 2. Механизм вроде ничего сложного: программа-клиент регистрируется на сервере уведомлений, передает адрес подписки на сервер который POSTом отправляет xml опеределенного вида, разного формата для Toast и Tile. Тост отправился сразу, с тайлом я затупил, оказывается надо было для клиента сделать иконку на рабочем столе и при получнии Tile-уведомления иконка перерисовывается в зависимости от параметров в xml.

Теперь про android, sdk у них кросс-платформерный, есть удобный плагин для eclipse, который тоже кросс-платфомерный. Начал изучать как реализованы нотификации. Задача вывода уведомления ложится на плечи программы-клиента, создаем хэндлер, который принимает какое-то событие и делает то что считает нужным. Вопрос в том как получить сбытие, есть C2DM, нужно зарегистироваться на сервере через web-форму, через некоторе время приходит уведомление что все хорошо, только скажите когда будете выкладывать приложение в продакшон, чтобы увеличить квоту отправляемых сообщений. Далее в программе-клиенте регистрируемся на C2DM (нужен гугловый акк) , получаем id, шлем его на сервер. Сервер POSTом отправляет сообщение на C2DM (нужен только авторизационный токен и id подписки), а далее хендлер, зарегистрированный программой-клиентом выводит уведомление.

Вроде бы тоже самое, да не совсем: у гугла, на мой взгляд сделано намного грамотнее и более гибко, а windows сделали какой-то черный ящик, еще посмотрим как в iOS извернулись...

android, работа, ljmob

Previous post Next post
Up