#browser #deployment #kiosk
#браузер #развертывание #киоск
Вопрос:
Хорошо, вот сложный вопрос, над которым я ломал голову всю неделю.
Я создаю систему самообслуживания, которая позволяет людям идентифицировать себя по штрих-коду или смарт-карте, а затем выполнять произвольные действия. Я запускаю контейнер приложений Tomcat локально на каждом компьютере для обслуживания страниц и подключения к требуемым внешним ресурсам. Это также позволяет мне обслуживать веб-страницы, которые я затем могу использовать для отображения содержимого на экране.
Я выбрал HTML в качестве технологии отображения, потому что он дает большую свободу в отношении того, как все может выглядеть. Программа также использует много Javascript для взаимодействия с клиентом и оборудованием (через RESTful API). Я выбрал Javascript, потому что он является естественным дополнением к HTML и поддерживается всеми современными браузерами.
В настоящее время эта система тестируется на нескольких сайтах, и, похоже, все работает нормально. Я запускаю его в режиме киоска Chrome. Что мне очень помогает, но есть ряд недостатков. Вот где начинаются проблемы. 😉
Прежде всего, я ошеломлен тем, что автоматическое обновление Chrome в конечном итоге нарушит мой код Javascript. Во-вторых, я запускаю небольшой плагин Chrome для чтения номеров смарт-карт, и каждый раз, когда рабочая станция неправильно завершает работу, профиль пользователя Chrome повреждается, и расширение необходимо настроить заново. Я мог бы легко исправить первую проблему, отключив автоматическое обновление, но это усложняет процедуру установки.
На самом деле, необходимость установки любого браузера усложняет процедуру установки.
Я действительно рассматривал возможность использования Internet Explorer, потому что он практически везде, но с тремя доминирующими версиями я не уверен, что это хороший подход. Мой Javascript довольно сложный, и заставить его работать на более старых версиях будет непросто. Даже не упоминая о необходимости написания компонента ActiveX для моих смарт-карт.
Вот почему я решил создать небольшую оболочку браузера, которая работает в полноэкранном режиме и может считывать номера смарт-карт. У этого также есть недостатки. Я использую Qt: QtWebKit от Qt весит 10 МБ, и он добавляет еще одно количество зависимостей к моему приложению.
Мне действительно кажется, что мне нужно выбирать из трех вариантов, у которых есть недостатки. Это действительно то, что я должен был исследовать, прежде чем писать всю программу. Я думаю, это хорошо усвоенный урок.
Перейдем к вопросам:
Есть ли безболезненный выход из этой ситуации? (вероятно, нет)
Есть ли браузер, на который я могу положиться, не добавляя десятки мегабайт в свой проект?
Есть ли другая альтернатива, которую вы могли бы предложить?
Если вы не видите другого выхода, какой вариант вы бы выбрали?
Комментарии:
1. Является ли 10 мегабайт серьезной проблемой? Насколько точно вы ограничены в своем пространстве?
2. Это не является серьезной проблемой, однако я стараюсь, чтобы программа была как можно меньше, потому что иногда мне нужно удаленно развертывать и загружать ее по ISDN-линии 128 Тыс.