Я работаю над веб-приложением, которому требуются данные, которые он может получить только из локально установленного собственного браузера приложений.
Как обойти песочницу браузера, чтобы вы могли общаться (безопасно, поскольку данные потенциально чувствительны) с собственным приложением.
В единственном примере, который я нашел, пользователь вручную перемещает некоторые токены и файлы между ними, что является ужасным пользовательским опытом, которого я хотел бы избежать.
web-applications
Зак Кус
источник
источник
Ответы:
Вы можете встроить веб-сервер в собственное приложение, а затем ваш клиент может делать вызовы по нему с помощью жестко запрограммированных ссылок на http: // localhost / xyz (здесь вам может потребоваться предупреждение о межсайтовых сценариях и / или запустить сервер. на не-http порт). Если вы используете веб-сокеты, ваше собственное приложение может даже передавать данные в веб-браузер, как только браузер инициирует связь.
Я делаю это сам локально, встроенный элемент управления веб-браузера запрашивает данные визуализации с пользовательского веб-сервера, и при разработке я запускаю оба на одном компьютере.
Существует много крошечных и эффективных встроенных веб-серверов для C / C ++ (Mongoose, NxWeb, civetweb и т. Д.), C # обычно используют полноценный WCF-сервер, Python поставляется с небольшим веб-сервером IIRC.
источник
Есть несколько способов смешать нативное приложение и приложение браузера.
Вы можете встроить браузер в собственное приложение, как в приложениях PhoneGap на мобильных устройствах. Это позволит вам расширить движок javascript браузера и делать вызовы между ними.
В качестве альтернативы, переосмыслите свою архитектуру. Пусть и собственное приложение, и приложение на основе браузера используют сервер в качестве посредника. Таким образом, и браузер, и собственное приложение общаются только с веб-сервером, который при необходимости передает информацию между ними.
Или, если вам нужна собственная функциональность ... просто создайте одно собственное приложение.
Я не рекомендую подход «локальный веб-сервер» ни для чего, кроме приложений, запускаемых в контролируемых средах. Если ваше программное обеспечение предназначено для установки и запуска на компьютерах конечных пользователей с минимальными требованиями к поддержке, вы столкнетесь с целым рядом проблем, связанных с брандмауэром и антивирусным программным обеспечением.
источник