Home

суббота, 9 января 2010 г.

Remote FrontRow control

Делаем удаленное управление FrownRow с iPhone/iTouch на коленке
По следам публикации в ЖЖ коммьюнити ru_mac

webrow.gif

Если посмотреть на аналогичные решения в AppStore, то легко заметить, что все они состоят из двух частей - приложения для iPhone/iTouch и сервера для Mac OS X. Мобильная часть взаимодействует с серверной, а та уже непосредственно "давит на кнопки" мака.

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

Итак, наше наколенное изделие будет представлять из себя маленький встроенный веб-сервер, который работает на порту 5000 и обслуживает единственную страницу index.html, принимая POST-запросы на menu.html, plus.html, minus.html, prev.html, play.html, next.html по странице на каждую из клавиш пультика AppleRemote и, как в качестве реакции эмулировать нажатие клавиш Command-Esc, стрелка вверх/вниз/влево/вправо и Enter. Соединяем части вместе.

В качестве основы сервера берем Cocoa HTTP Server из гуглокода, вырезаем из него https и прочую авторизацию. Добавляем собственное журналирование происходящего. Дизайн страниц для MobileSafari на начальном этапе нагло заимствуем у приложения Rowmote из AppStore. Пробуем.

Запускаем приложение, жмем на ON, сервер включается и в журале сообщает свой адрес для подключения, Нечто вроде

Started HTTP server on port 5000
Bonjour Service Published: domain(local.) type(_http._tcp.) name(pasha)

Берем iPhone/iTouch, открываем Safari и вводим нужный адрес, в моем случае это http://pasha.local.:5000/
В случае успеха видим страницу. Теперь жмем на большой плюс статус бара MobileSafari и выбираем опцию добавления на экран (не в закладки). На столе телефона появляется новая иконка приложения. Запускаем ее. Появляется эта же страница, но без адреса и без статуса. Пробуем управлять.

Ссылки на

Ой.

0 коммент.:

Отправить комментарий