Программа киоска (веб-браузер), борьба за развертывание - PullRequest
0 голосов
/ 02 ноября 2011

Хорошо, вот сложный, который я ломал себе голову всю неделю.

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

Я выбрал HTML в качестве технологии отображения, потому что он дает большую свободу относительно того, как все может выглядеть. Программа также включает в себя много Javascript для взаимодействия с клиентом и оборудованием (через RESTful API). Я выбрал Javascript, потому что он является естественным дополнением к HTML и поддерживается всеми современными браузерами.

В настоящее время эта система тестируется на нескольких сайтах, и, похоже, все работает нормально. Я запускаю его в режиме киоска Chrome. Который служит мне хорошо, но есть ряд недостатков. Здесь начинаются проблемы. ; -)

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

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

Я подумал об использовании Internet Explorer, потому что он в основном везде, но с тремя доминирующими версиями я не уверен, что это хороший подход. Мой Javascript довольно сложен, и заставить его работать на старых версиях будет очень сложно. Даже не упоминая о необходимости написания компонента ActiveX для моих смарт-карт.

Именно поэтому я решил создать небольшую оболочку браузера, которая работает в полноэкранном режиме и может читать номера смарт-карт. Это также имеет недостатки. Я использую Qt: Qt QtWebkit весит огромные 10 МБ, и это добавляет еще одно количество зависимостей в мое приложение.

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

На вопросы:

Есть ли безболезненный выход из этой ситуации? (вероятно нет)

Есть ли браузер, от которого я могу зависеть, не добавляя десятки мегабайт в свой проект?

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

Если вы не видите другого выхода, какой вариант вы бы выбрали?

...