В этой статье мы расскажем вам об особенностях разработки приложений для телевизоров на платформе Philips NetTV.
Кратко перечислим основные трудности в разработке приложений Philips NetTV:
1) Медленное исполнение JS скриптов.
Когда в приложении начинает исполняться любой JS код, на экране отображается индикатор загрузки. При этом визуально кажется, что приложение «думает» (фактически, так оно и есть). Однако при этом нет возможности определить, что происходит: загружается новая веб-страница, или просто обрабатывается нажатие клавиши на ПДУ.
Использование таких библиотек как jquery крайне затруднено. От них лучше отказаться сразу. Ajax запросы также выполняются совсем не прозрачно для пользователя. В этом случае, опять-таки, появится злосчастный индикатор загрузки.
Если планируется поддержка старых версий телевизоров, то нужно будет еще отказаться и от CSS3-теней и прозрачности. Да и setTimeout лучше использовать по минимуму.
2) События
Вследствие вышесказанного навешивать события на нажатие клавиши (например, при навигации влево/вправо) нужно крайне аккуратно, и только если в этом есть крайняя необходимость. Про jQuery рекомендуем забыть сразу. А это означает существенные ограничения при реализации какого-либо интерактивного функционала. Приходится либо отказываться от интерактивности, либо заставлять пользователей мириться с медленным откликом приложения на навигацию (задержка может достигать нескольких секунд).
3) Навигация
Для реализации ‘интеллектуальной’ навигации нужно использовать spatial navigation. Суть данного метода заключается в определении направления навигации в CSS стилях HTML элемента (nav-left, nav-right). С одной стороны, это удобно: можно определять возможные направления навигации для кажого элемента в момент верстки или при инициализации страницы, используя скрипт. Но в том случае, когда элементов навигации слишком много, или когда их количество и положение меняется динамически, управлять всем этим становится не очень удобно, поскольку приходится менять возможные направления навигации для всех связанных элементов.
4) Приложение должно соответствовать стандарту CE-HTML (HTML For Consumer Electronics — HTML для бытовой электроники). По сути это значит, что приложения поддерживают следующие стандарты:
- ECMAScript 262, 3 издание
- XHTML 1.0 transitional/strict
- CSS TV Profile 1.0
- XMLHttpRequest object
- DOM level 2.0 (Core, Style, Events, HTML),
а также ряд специфических расширений для CE-устройств:
- Multi-tap или любой другой специфический формат, реализующий CSS3 input-format.
Аудио/видео кодеки.) - JS-хуки и интерфейсы для «общения» с ПДУ.
Вспомогательные данные в user-agent. При получениии таких данных сервер может переходить в режим «XML UI Listing», чтобы дать клиенту возможность использовать необходимый CE-HTML интерфейс из числа предложенных. Специфические интерфейсы для конкретного устройства (поддержка шрифтов, размеры и др.) также основаны на том же самом 10-foot user interface.
5) Эмулятор
Эмулятор не поддерживает воспроизведение видео (наверное, по лицензионнным причинам). Что затрудняет отладку разрабатываемого видеоплеера (большей части приложений приходится разрабатывать видеоплеер).
6) HTML-движок не терпит невалидного XML кода — весь код должен соответствовать спецификации XML. Если в коде встречаются незакрытые теги, на экране телевизора появляется ошибка; при этом страница не будет отображена. На это следует обращать внимание, особенно если наполнением контентом занимаются неподготовленные к таким нюансам лица.
7) Marlin DRM
Телевизоры Philips поддерживают Marlin DRM, что дает возможность лицензировать контент мейджоров для распространения через приложение Philips NetTV.
Лояльных зрителей вашим приложениям Philips NetTV!