Какой встроенный браузер для проекта С++?
Есть ли какой-либо браузер, который я мог бы встроить в приложение на С++ в Windows?
Мне нужны все функции, характерные для браузера (HTTP-клиент, поддержка файлов cookie, парсер HTML в стиле DOM, механизм JavaScript) кроме.
Поскольку мне не нужны возможности рендеринга (и эта довольно большая часть браузера), я бы предпочел браузер с немонолитным дизайном, поэтому мне не пришлось бы включать в него рендеринг.
Было бы неплохо, если бы он имел С++, а не C API.
Мне нужен этот встроенный браузер в основном потому, что у меня много проблем с поиском С++ HTML-парсера, который может обрабатывать разбитый HTML, как браузеры.
Если вы знаете какие-либо вопросы, ответьте Рекомендацию библиотеки: С++ HTML Parser. ВОПРОС или, по крайней мере, проголосуйте за это, чтобы увеличить шанс, который кто-то даст хороший ответ.
Ответы
Ответ 1
Я немного смущен вашим вопросом относительно внедрения веб-браузера, для которого вам не нужны возможности рендеринга. Веб-браузер выполняет рендеринг веб-страниц по определению, если только вам не нужны HTTP и XML с возможностями JavaScript, которые являются подмножеством функций браузера?
Если вам нужен веб-браузер для встраивания в ваше приложение на С++, я бы предложил рассмотреть Qt, который поставляется с плагином WebKit. Это С++, LGPL и имеет очень приятную IDE (Qt Creator). Я пробовал Qt с Qt Creator на unix (Ubuntu), и это было очень впечатляюще. Отладчик немного светлый, но это только первая версия. Адаптер Qt в visual С++ 2008 теперь свободен.
Ответ 2
Похоже, все, что вам нужно, это что-то вроде libcurl, который является библиотекой HTTP и позволит вам делать GET/POST/etc.
Когда я думаю, что браузер я вообще считаю рендерингом /JavaScript, а не библиотекой HTTP.
Edit
В этом случае я бы посмотрел на WebKit (который, я думаю, имеет С++ API) и надеюсь, что у вас нет слишком сильно втянуть.
Изменить снова
Во второй раз (поскольку рендеринг - такая большая часть того, что делают браузеры), вам может быть лучше использовать автономный JS-движок, например SpiderMonkey и автономный XML-парсер, например Xerces-C (плюс, возможно, tidy, чтобы сделать ваш HTML в XML).
Ответ 3
Включение поддержки javascript и синтаксического анализа html делает эту нетривиальную задачу - вам нужно использовать один из доступных браузеров.
- IE можно использовать через свою COM-модель - вы можете создать экземпляр этого в своем окне, будь то невидимым или нет, и вызовите его возможности javascript/html.
Он был разработан таким образом, чтобы использовать его с самого начала и, конечно же, он работает нормально.
Другие варианты:
-
Gecko/Mozilla - пару лет назад это было непригодным для использования, в настоящее время я думаю, что это так.
-
WebKit/V8 - публичный API еще не выпущен для Chrome, вы можете использовать сам webkit, но у него нет механизма javascript. Другой вариант - взглянуть на кодовую базу Chrome и посмотреть, сможете ли вы выйти из нее, что вам нужно.
Я бы, вероятно, пошел на IE, так как это, возможно, самый простой вариант, и я уже использовал его. Другие варианты мне больше похожи на создание браузера, а не просто его использование.
Ответ 4
Вы также можете проверить Awesomium - он бесплатный для некоммерческого использования и имеет все функции, (если вам не нужен рендеринг, просто не используйте его).
Ответ 5
Существует проект CEF = The Chromium Embedded Framework - это:
простая структура для встраивание браузеров на основе хрома в другие приложения. Это BSD-лицензированный проект с открытым исходным кодом, основанный Маршаллом Гринблаттом в 2008 и основан на проекте Google Chromium. В отличие от хрома сам проект, в котором основное внимание уделяется приложению Google Chrome развития, CEF фокусируется на облегчении применения встроенных браузеров в сторонних приложений.
и да:
Базовая структура CEF включает поддержку программирования на C и С++ языки.
Ответ 6
Как насчет Gecko? Вам может не понадобиться весь движок, но вы можете найти некоторые его компоненты полезными, например SpiderMonkey, который является механизмом JavaScript, написанным на C.
Ответ 7
Я бы рекомендовал собрать Qt для программирования на С++. Он имеет встроенную библиотеку, в которой внедряет Webkit со всеми вызовами bells'n'whistles, а Qt - отличная библиотека С++ в целом.
Ответ 8
Старый вопрос, я знаю, но взгляните на
http://msdn.microsoft.com/en-us/library/ky29ffxd%28v=vs.94%29.aspx
IActiveScript и семейные COM-интерфейсы позволяют выполнять script (не только JS, любой язык, который регистрируется как script, в этом случае).