TV Remote Control Пространственная навигация - PullRequest
0 голосов
/ 28 июня 2019

Я занимаюсь разработкой библиотеки React, которая будет использоваться веб-приложением для SmartTV, наша цель - сделать его универсальным для работы на различных телевизионных платформах (webOS, Android).

Вариант использования: мы хотим, чтобы пользователь мог перемещаться по различным элементам на экране, используя кнопку дистанционного управления.Судя по результатам исследований, каждая телевизионная платформа имеет свои собственные коды кнопок (код, генерируемый при нажатии кнопки на пульте дистанционного управления).Я пытаюсь выяснить,

  1. Как кнопки со стрелками обрабатываются в элементе управления телевизора, телевизионные платформы (все? Или определенная платформа?) Заботятся о смене фокуса с кнопкиto button

    • Я пытаюсь понять в телевизоре, как работают клавиши со стрелками?

    • Когда мы нажимаем клавишу со стрелкой, каркас обрабатывает перемещениефокусировка на следующий фокусируемый элемент (например, кнопка на следующую кнопку)

  2. Если нет, то что может быть лучшим способом для пространственной навигации ?

    • Есть ли доступная библиотека, которую мы можем использовать?

    • Есть ли пример кода, чтобы посмотреть, как телевизионные приложения, такие как Netflix, Spotify делаютэтот или все эти сервисы разрабатывают разные приложения для разных телевизионных платформ?

1 Ответ

1 голос
/ 11 июля 2019

Мы также сделали приложение, поддерживающее iOS, Android и Tizen.Для iOS и Android мы использовали ответ-нативный.Нативные движки фокуса для Android и iOS делают хорошую работу.Любые пользовательские изменения могут быть сделаны на уровне реакции.Так как наше приложение Tizen для веб-интерфейса не имело навигации, поэтому мы повторно использовали собственный код реакции, но мы заменили все экземпляры Touchable на пользовательский пакет пространственной навигации, основанный на https://www.npmjs.com/package/react-js-spatial-navigation (с использованием псевдонимов Babel).Импортируемый пакет-пакет был заменен реагирующей-нативной сетью.Посмотрите «ренативный» проект о том, как это сделать.В результате на всех трех платформах происходит совместное использование кода на 100%.На iOS и Android используется TouchableOpacity / TouchableHighlight, а на Tizen - замена с использованием нашей пользовательской библиотеки.Я намерен в ближайшее время сделать проект, демонстрирующий это.

...