Используйте CEF в автономном режиме без кеша приложений

Я изучаю использование CEF в новом настольном приложении, в котором я хочу визуализировать пользовательский интерфейс с помощью HTML5/js. Однако я не хочу, чтобы модель была типичным веб-приложением, которое просто отображается во встроенном браузере (т. е. извлекает ресурсы с удаленного сервера, например веб-страницы). По сути, я хочу иметь настольное приложение, которое поставляется со всеми HTML и скриптами, необходимыми для визуализации пользовательского интерфейса, и работает полностью в автономном режиме.

Мой вопрос: способен ли CEF сделать это более или менее из коробки? Или мне нужно будет написать кучу пользовательского кода для обработки и рендеринга локальных ресурсов или встраивания локального веб-сервера? Простым примером может быть создание кнопок пользовательского интерфейса и вывода для базового приложения-калькулятора (хотя запланированное приложение намного сложнее). Как бы я начал подходить к этому?

Я также рассматриваю Электрон как возможное решение. Похоже, он больше ориентирован на то, что я хочу сделать (рендеринг пользовательского интерфейса с помощью веб-технологий, но без обязательного подключения к чему-либо). Однако у нас есть некоторые устаревшие библиотеки C++, которые нам нужно интегрировать, и я считаю, что с CEF это будет проще, чем с Electron.

Оглядываясь вокруг, кажется, что CEF поддерживает appcache для так называемых «автономных приложений». Однако я с подозрением отношусь к его использованию из-за многочисленных проблем. имеет. Также кажется, что appcache умирает, так что я бы все равно не привязывал себя к тонущему кораблю. К сожалению, service worker тоже не совсем готов к работе в прайм-тайм.


person jtheis    schedule 09.11.2015    source источник
comment
Возможно. Либо вы можете использовать собственную фабрику схем и предоставить ресурсы самостоятельно (в основном сопоставить какой-то rc://100 с файлом 100.html), либо загрузить HTML-файлы и предоставить их в памяти.   -  person Cristian Amarie    schedule 19.10.2016


Ответы (1)


См. руководство CEF General Usage в разделе Request Handling для двух поддерживаемых методов обработки пользовательских запросов.

https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage.md#markdown-header-request-handling

То, что вы ищете, действительно возможно из коробки и относительно легко реализовать. Пример приложения cefclient содержит рабочие примеры.

https://bitbucket.org/chromiumembedded/cef/src/694b45717c971a0bb639f555b640d313fc15ccc8/tests/cefclient/?at=master

person amaitland    schedule 16.11.2015