Использовать Chrome в качестве браузера в C #? - PullRequest
47 голосов
/ 26 января 2010

Есть ли способ использовать Google Chrome (или Safari или Firefox) в качестве браузера в приложении C #?C # теперь использует Internet Explorer, и веб-сайт, который они хотят использовать в этой программе, не поддерживает его.

Ответы [ 11 ]

52 голосов
/ 26 января 2010

Вы можете использовать WebKit.NET . Это оболочка C # для WebKit - движка рендеринга, используемого Chrome.

43 голосов
/ 26 января 2010

Вы можете использовать GeckoFX для встраивания Firefox

12 голосов
/ 26 января 2010

Я не знаю ни одного полного компонента Chrome, но вы можете использовать WebKit - движок рендеринга, используемый Chrome Проект Mono сделал WebKit Sharp , который может работать для вас.

10 голосов
/ 12 мая 2013

Я использую Awesomium, я думаю, что он лучше, чем GeckoFX / WebKit http://awesomium.com

5 голосов
/ 06 октября 2011

OpenWebKitSharp дает вам полный контроль над WebKit Nightly, который очень близок к webkit с точки зрения производительности и совместимости. Chrome использует движок WebKit Chromium, а WebKit.NET - Cairo и OpenWebKitSharp Nightly. Chromium должен быть лучшим из этих сборок, в то время как на 2-м месте должен прийти Nightly, и поэтому я предлагаю OpenWebKitSharp.

http://gt -web-software.webs.com / library.htm в разделе OpenWebKitSharp

4 голосов
/ 06 июня 2012

Мне удалось сделать это с помощью CefSharp.

Вот пара сообщений, которые показывают это в действии:

3 голосов
/ 03 января 2017

1/3/2017 -> 3 января 2017

Привет, сегодня я нашел эту статью для достижения этой цели, которая называется «Создание HTML-интерфейса для настольных приложений .NET» и предназначена для внедрения элемента управления на основе хрома в приложение WPF. Это спасло меня день.

https://www.infoq.com/articles/html-desktop-net

Надеюсь, это поможет кому-то еще.

ПРИМЕЧАНИЕ: он основан на DotNetBrowser, см. Лицензионное соглашение здесь: https://www.teamdev.com/dotnetbrowser-licence-agreement

2 голосов
/ 13 февраля 2016

Обновление 2016:

К сожалению, большинство из вышеперечисленных решений устарели и более не поддерживаются.

Есть 3 дополнительных варианта, которые я могу предложить, которые все еще активно развиваются:

1. BrowseEmAll.Cef

Компонент .Net, который можно использовать для интеграции Chrome engine в ваше приложение .Net. Основано на CefGlue , но немного быстрее на обновлениях до последней версии Chrome. Также имеется опция коммерческая поддержка , которая может пригодиться для некоторых. Конечно, сам компонент с открытым исходным кодом .

2. BrowseEmAll.Gecko

Еще один компонент .Net, который можно использовать для интеграции движка Firefox в ваше приложение .Net. Это основано на Geckofx , но в отличие от текущей версии Geckofx, это будет работать с обычной версией Firefox. Чтобы использовать Geckofx, вам нужно собрать Firefox самостоятельно. Опять же коммерческая поддержка доступна, но сам компонент полностью с открытым исходным кодом .

3. BrowseEmAll Core API

Вам нужны все различные браузеры в вашем .Net приложении? Какой API BrowseEmAll Core вы можете интегрировать в свое приложение Chrome, Firefox, Webkit и Internet Explorer . Это коммерческий продукт , но будьте осторожны.

(Полное раскрытие информации: я работаю в этой компании, поэтому беру все, что я говорю, с долей соли)

2 голосов
/ 22 апреля 2015

Взгляните на библиотеку DotNetBrowser . Он предоставляет элементы управления браузером WPF и WinForms на основе Chromium, которые довольно легко встроить в приложение .NET. Он поддерживает все современные веб-стандарты, включая HTML5, CSS3 и JavaScript. Страница отображается точно так же, как в Google Chrome.

Библиотека наследует многопроцессную архитектуру Chromium - каждая веб-страница отображается в отдельном процессе Chromium, и приложение продолжает работать даже после сбоя плагина или любой другой непредвиденной ошибки на веб-странице.

Вот некоторые другие полезные функции, предоставляемые DotNetBrowser: есть возможность прослушивать события загрузки, управлять сетевой активностью, настраивать прокси, моделировать действия пользователя, работать с файлами cookie, получать доступ и изменять DOM, прослушивать события DOM, вызывать JavaScript из .NET и наоборот, используйте веб-камеру и микрофон на веб-странице, настройте обмен данными на основе WebRTC и еще .

Обратитесь к Справочнику по API для получения более подробной информации.

Фрагмент кода ниже демонстрирует, как создать BrowserView, внедрить его в форму и загрузить URL:

using System.Windows.Forms;
using DotNetBrowser;
using DotNetBrowser.WinForms;

namespace WinForms.DotNetBrowser
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            BrowserView browserView = new WinFormsBrowserView();
            Controls.Add((Control) browserView);
            browserView.Browser.LoadURL("http://www.youtube.com");
        }
    }
}

Запустив приведенный выше пример, вы получите следующий вывод:

enter image description here

Библиотека является коммерческой. Коммерческие лицензии включают пакеты поддержки для разных размеров команды. Также можно приобрести исходный код библиотеки.

Помимо собственной страницы, компонент доступен в виде пакета NuGet и пакета VSIX в Visual Studio Marketplace.

2 голосов
/ 11 марта 2014

Обновление за 2014 год:

Я использую geckofx , здоровый проект с открытым исходным кодом, который (на момент написания этой статьи) очень хорошо соответствует последним версиям Firefox.

Чтобы встроить Chrome, вы можете рассмотреть еще один здоровый проект с открытым исходным кодом, Xilium.cefGlue , основанный на Chromium Embedded Framework (CEF) .

Оба поддерживают WPF и Winforms, и оба проекта поддерживают .net и mono.

...