HTML5 с локальными периферийными устройствами

Мы изучаем перенос приложения .NET для толстого клиента в веб-приложение на основе HTML5, но зависание заключается в том, что мы взаимодействуем с различными USB/последовательными/совместно используемыми устройствами (принтеры чеков, принтеры отчетов, специальные архивные принтеры, sigpads, сканеры, веб-камеры и т. д.).

Есть ли какой-нибудь возможный способ заставить сайт HTML5 взаимодействовать с локальными USB/последовательными периферийными устройствами или с локальной службой (например, перейти на www.site.com/app и заставить его взаимодействовать с localhost:1234/api для запроса такие вещи, как подписи и отправлять такие вещи, как задания на печать)?

Другой вариант, о котором я думал, - это установить локальную настройку типа тонкого клиента, которая запрашивает элементы пользовательского интерфейса из API удаленного сервера, но имеет внутреннюю логику, чтобы знать, что делают периферийные устройства, и передает данные через API.

Наименее предпочтительным является попытка написать какой-то плагин для браузера, который связан с использованием java-апплета. Silverlight может работать, но я не исследовал его слишком много.

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


person Alex Ray    schedule 23.10.2014    source источник


Ответы (1)


Попробуйте встроить веб-браузер в отдельное приложение и закодировать взаимодействие в бэкэнде: Некоторые альтернативы:

Конечно, вы могли бы использовать локальное сервисное приложение, чтобы сделать за вас грязную работу, и вам нужно было бы как-то общаться: WebSockets, запросы AJAX. Существуют способы обойти меры безопасности, которые запрограммированы в современных браузерах (междоменные запросы и обман DNS), но основным препятствием будет заставить ваших клиентов установить службу. Если вам это удастся, то сервис вполне может напрямую обслуживать HTML-страницы и обрабатывать запросы на периферийные устройства.

person Emil    schedule 23.10.2014
comment
Я также рассматривал что-то вроде локального веб-сервиса. Например, обслуживать приложение с remotehost.org/App обслуживать API локального устройства с localhost/API Используйте JSONP или CORS, чтобы разрешить remotehost.org/ Приложение взаимодействует с оборудованием хоста через localhost/API. Это звучит осуществимо? - person Alex Ray; 31.10.2014