Замена элемента управления .NET WebBrowser на лучший браузер, например, Chrome?

401

Есть ли относительно простой способ вставить современный браузер в приложение .NET?

Насколько я понимаю, элемент управления WebBrowser является оболочкой для IE, что не будет проблемой, за исключением того, что похоже, что это очень старая версия IE, все это влечет за собой зависания CSS, потенциальные риски безопасности (если механизм рендеринга не был исправлен, могу ли я действительно ожидать устранения проблем с переполнением буфера zillion?) и другие проблемы.

Я использую Visual Studio С# (экспресс-версия - здесь какая-либо разница?)

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

Мне нужно:

  • Браузер, который может интегрироваться в окно моего приложения (не отдельное окно)
  • Хорошая поддержка CSS, js и других веб-технологий наравне с любым современным браузером.
  • Основные функции браузера, такие как "navigate", "back", "reload"...
  • Либеральный доступ к коду страницы и вывод.

Я думал о Chrome, так как он подпадает под лицензию BSD, но я был бы так же доволен недавней версией IE.

Насколько это возможно, я хотел бы сохранить все просто. Лучше всего было бы, если бы можно было исправить существующий элемент управления WebBrowser, который уже составляет около 70% того, что мне нужно, но я не думаю, что это возможно.

Я нашел элемент управления activeX для Mozilla (http://www.iol.ie/~locka/mozilla/control.htm), но он выглядит как старая версия, поэтому это не обязательно улучшение.

Я открыт для предложений

  • 19
    Почему вы говорите, что элемент управления WebBrowser использует старую версию IE? Он использует версию, установленную в системе пользователя, хотя веб-браузер IE8 по умолчанию отображает IE7: blogs.msdn.com/ie/archive/2009/03/10/…
  • 13
    Потому что на моей машине это не так. У меня установлен IE8, но элемент управления отображает проблемы с отображением, которых я не видел со времен IE 5. Очень простая форма входа в систему, 2 поля с легким касанием CSS имеют искаженное отображение, а некоторые отображения javascript не работают, тогда как отображают хорошо в IE8, Firefox, Chrome, Opera ... поэтому я предположил, что движок рендеринга был старый. Я могу быть совершенно неправ в этом, и, возможно, проблема на самом деле отличается от того, что я думал.
Показать ещё 11 комментариев
Теги:
winforms
webbrowser-control

20 ответов

154

Checkout CefSharp.NET привязки, проект, который я начал некоторое время назад, который, к счастью, был поднят сообществом и превратился во что-то замечательное.

Проект обертывает Chromium Embedded Framework и используется в ряде крупных проектов, включая клиента Rdio Windows, Facebook Messenger для Windows и Github для Windows.

Он имеет элементы управления браузером для WPF и Winforms и имеет множество функций и точек расширения. Будучи основанным на Chromium, он также блистает быстро.

Возьмите его из NuGet: Install-Package CefSharp.Wpf или Install-Package CefSharp.WinForms

Ознакомьтесь с примерами и дайте свои мысли/отзывы/pull-запросы: https://github.com/cefsharp/CefSharp

Лицензия BSD

  • 0
    +1 на этот ответ. Сейчас он активно разрабатывается на основе выпущенной версии Chromium 25.0.1364.152.
  • 2
    Я перешел на CEfSharp из OWS, и могу с уверенностью сказать, что это очень качественное и активное сообщество. Любить это. github.com/cefsharp/CefSharp
Показать ещё 14 комментариев
81

Chrome использует (fork of) Webkit, если вы этого не знаете, который также используется Safari. Вот несколько вопросов, которые имеют один и тот же смысл:

Webkit не очень хорош, как утверждает другой ответ, одна версия больше не работает (один код google), а Mono - экспериментальный. Было бы неплохо, если бы кто-то приложил все усилия, чтобы сделать для него приличную .NET-оболочку, но это не то, что кажется кому-то желающим - что удивительно, учитывая, что теперь он поддерживает HTML5 и многие другие функции, которые IE (8 ) двигатель отсутствует.

Обновление (2014)

Появился новый проект с двумя лицензиями, который позволяет внедрять Chrome в ваши приложения .NET под названием Awesomium. Он поставляется с .NET api, но требует довольно много хаков для рендеринга (примеры рисуют окно браузера в буфер, рисуют буфер как изображение и обновляются на таймере).

Я думаю, что это браузер, используемый Origin в Battlefield 3.

Обновление (2016)

Теперь существует DotnetBrowser, коммерческая альтернатива Awesomium. Он основан на Chromium.

  • 0
    Благодарю. Я посмотрю на обертку Gecko. Тем не менее, оригинальный ответ гласит: «Все, что вам нужно сделать, это зарегистрировать элемент управления Mozilla ActiveX», и я подумал, что редакции Express не могут зарегистрировать дополнительные элементы управления. Я что-то упускаю из виду?
  • 4
    @ В экспресс-изданиях можно зарегистрировать столько элементов управления, сколько вам нужно. Чего они не будут делать, так это позволить вам устанавливать плагины для Visual Studio.
Показать ещё 4 комментария
58

Я уже несколько дней тестирую альтернативы компоненту веб-браузера С# и вот мой список:

1. Использование более новых версий IE 8,9:

Компонент веб-браузера IE7 не IE8? Как это изменить?

Плюсы:

  • Не требуется много работы, чтобы запустить его
  • некоторая поддержка HTML5/CSS3, если IE9, полная, если IE10

Минусы:

  • На целевой машине должна быть установлена целевая версия IE, IE10 все еще находится в режиме предварительного просмотра на Win7

Это не требует большой работы, и вы можете получить некоторую поддержку HTML5 и CSS3, хотя в IE9 отсутствуют некоторые из лучших функций CSS3 и HTML5. Но я уверен, что вы могли бы запустить IE10 таким же образом. Проблема заключается в том, что в целевой системе должен быть установлен IE10, и, поскольку в Windows 7 он все еще находится в режиме предварительного просмотра, я бы посоветовал против него.

2. OpenWebKitSharp

OpenWebKitSharp - это оболочка .net для движка webkit, основанная на проекте WebKit.NET 0.5. WebKit - это механизм верстки, используемый Chrome/Safari

Плюсы:

  • Активно развивается
  • Поддержка HTML5/CSS3

Минусы:

  • Многие функции не реализованы
  • Не поддерживает x64 (приложение должно быть построено для x86)

OpenWebKit довольно приятный, хотя многие функции еще не реализованы, я столкнулся с несколькими проблемами при использовании его в Visual Studio, которая выбрасывает здесь нулевую ссылку на объект, а затем в режиме разработки возникают некоторые проблемы с js. Каждый, кто его использует, почти сразу заметит, что js alert ничего не делает. Такие события, как mouseup, mousedown... и т.д. Не работают, js drag and drop содержит ошибки и т.д.

У меня также были некоторые трудности с его установкой, так как для этого требуется установленная версия распространяемого VC, поэтому после исключения я посмотрел журнал событий, нашел версию VC и установил ее.

3. GeckoFX

Плюсы:

  • Работает на моно
  • Активно развивается
  • Поддержка HTML5/CSS3

Минусы:

  • D̶o̶e̶s̶n̶'̶t̶ ̶s̶u̶p̶p̶o̶r̶t̶ ̶x̶6̶4̶ ̶ (̶A̶p̶p̶ ̶m̶u̶s̶t̶ ̶b̶e̶ ̶b̶u̶i̶l̶t̶ ̶f̶o̶r̶ ̶x̶8̶6̶ ниже - см. Ниже - см. Ниже) ̶

GeckoFX - это кроссплатформенный веб-браузер для встраивания в приложения WinForms. Это можно использовать с .NET в Windows и с моно в Linux. Gecko - это механизм разметки, используемый Firefox.

Я столкнулся с немногими сведениями о том, что GeckoFX активно не разрабатывается, что не соответствует действительности, конечно, это всегда одна или две версии Firefox, но это нормально, меня по-настоящему впечатлила активность и сам элемент управления. Он делает все, что мне нужно, но мне нужно было некоторое время, чтобы запустить его, вот небольшое руководство для его запуска:

  1. Загрузите GeckoFx-Windows-16.0-0.2, здесь вы можете проверить, доступен ли более новый GeckoFX
  2. Добавить ссылки на два загруженных DLL
  3. Поскольку GeckoFX является оберткой, вам нужен XulRunner, перейдите в Список версий, чтобы узнать, какая вам нужна.
  4. Теперь, когда мы знаем, какая версия XulRunner нам нужна, мы переходим к выпускам Mozilla XulRunner, переходим в папку версий → runtimes → xulrunner- (your_version).en-US.win32.zip, в нашем случае xulrunner- 16.0. en-US.win32.zip
  5. Разархивируйте все и скопируйте все файлы в ваш bin\Debug (или выпустите, если ваш проект настроен на выпуск)
  6. Зайдите в визуальную студию дизайнера вашей формы, перейдите на панель инструментов, щелкните правой кнопкой мыши внутри → Выбрать элементы → Обзор → Найти загруженный файл DLL-форм winck GeckoFX → ОК
  7. Теперь у вас должен быть новый элемент управления GeckoWebBrowser

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

  • 4
    Очень хорошее описание того, как запустить GeckoFx. +1
  • 0
    при сборке Geckofx-Winforms мне понадобилось 4 библиотеки gtk # (atk-sharp, gdk-sharp, glib-sharp и gtk-sharp), поэтому мне сначала пришлось установить Mono.
Показать ещё 7 комментариев
26

Вы можете использовать реестр для установки версии IE для управления веб-браузером. Перейдите по ссылке: HKLM\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION и добавьте "yourApplicationName.exe" со значением browser_emulation Чтобы увидеть значение browser_emulation, обратитесь к ссылке: http://msdn.microsoft.com/en-us/library/ee330730%28VS.85%29.aspx#browser_emulation

  • 10
    И если вы отлаживаете в Visual Studio, вам, вероятно, придется использовать «yourApplicationName.vshost.exe»
  • 3
    И если вы отлаживаете в Visual Studio, вы, вероятно, можете просто снять флажок «Включить процесс размещения Visual Studio» на вкладке «Отладка» в свойствах вашего проекта. Тогда вы можете использовать свое имя exe без части "vshost".
Показать ещё 1 комментарий
22

У меня была та же проблема: в WebBrowser использовалась старая версия IE, с некоторыми поисковыми системами я столкнулся с следующим кодом, который вносит изменения в реестр и позволяет WebBrowser использовать последнюю версию IE:

 public enum BrowserEmulationVersion
    {
        Default = 0,
        Version7 = 7000,
        Version8 = 8000,
        Version8Standards = 8888,
        Version9 = 9000,
        Version9Standards = 9999,
        Version10 = 10000,
        Version10Standards = 10001,
        Version11 = 11000,
        Version11Edge = 11001
    }
    public static class WBEmulator
    {
        private const string InternetExplorerRootKey = @"Software\Microsoft\Internet Explorer";

        public static int GetInternetExplorerMajorVersion()
        {
            int result;

            result = 0;

            try
            {
                RegistryKey key;

                key = Registry.LocalMachine.OpenSubKey(InternetExplorerRootKey);

                if (key != null)
                {
                    object value;

                    value = key.GetValue("svcVersion", null) ?? key.GetValue("Version", null);

                    if (value != null)
                    {
                        string version;
                        int separator;

                        version = value.ToString();
                        separator = version.IndexOf('.');
                        if (separator != -1)
                        {
                            int.TryParse(version.Substring(0, separator), out result);
                        }
                    }
                }
            }
            catch (SecurityException)
            {
                // The user does not have the permissions required to read from the registry key.
            }
            catch (UnauthorizedAccessException)
            {
                // The user does not have the necessary registry rights.
            }

            return result;
        }
        private const string BrowserEmulationKey = InternetExplorerRootKey + @"\Main\FeatureControl\FEATURE_BROWSER_EMULATION";

        public static BrowserEmulationVersion GetBrowserEmulationVersion()
        {
            BrowserEmulationVersion result;

            result = BrowserEmulationVersion.Default;

            try
            {
                RegistryKey key;

                key = Registry.CurrentUser.OpenSubKey(BrowserEmulationKey, true);
                if (key != null)
                {
                    string programName;
                    object value;

                    programName = Path.GetFileName(Environment.GetCommandLineArgs()[0]);
                    value = key.GetValue(programName, null);

                    if (value != null)
                    {
                        result = (BrowserEmulationVersion)Convert.ToInt32(value);
                    }
                }
            }
            catch (SecurityException)
            {
                // The user does not have the permissions required to read from the registry key.
            }
            catch (UnauthorizedAccessException)
            {
                // The user does not have the necessary registry rights.
            }

            return result;
        }
        public static bool SetBrowserEmulationVersion(BrowserEmulationVersion browserEmulationVersion)
        {
            bool result;

            result = false;

            try
            {
                RegistryKey key;

                key = Registry.CurrentUser.OpenSubKey(BrowserEmulationKey, true);

                if (key != null)
                {
                    string programName;

                    programName = Path.GetFileName(Environment.GetCommandLineArgs()[0]);

                    if (browserEmulationVersion != BrowserEmulationVersion.Default)
                    {
                        // if it a valid value, update or create the value
                        key.SetValue(programName, (int)browserEmulationVersion, RegistryValueKind.DWord);
                    }
                    else
                    {
                        // otherwise, remove the existing value
                        key.DeleteValue(programName, false);
                    }

                    result = true;
                }
            }
            catch (SecurityException)
            {
                // The user does not have the permissions required to read from the registry key.
            }
            catch (UnauthorizedAccessException)
            {
                // The user does not have the necessary registry rights.
            }

            return result;
        }

        public static bool SetBrowserEmulationVersion()
        {
            int ieVersion;
            BrowserEmulationVersion emulationCode;

            ieVersion = GetInternetExplorerMajorVersion();

            if (ieVersion >= 11)
            {
                emulationCode = BrowserEmulationVersion.Version11;
            }
            else
            {
                switch (ieVersion)
                {
                    case 10:
                        emulationCode = BrowserEmulationVersion.Version10;
                        break;
                    case 9:
                        emulationCode = BrowserEmulationVersion.Version9;
                        break;
                    case 8:
                        emulationCode = BrowserEmulationVersion.Version8;
                        break;
                    default:
                        emulationCode = BrowserEmulationVersion.Version7;
                        break;
                }
            }

            return SetBrowserEmulationVersion(emulationCode);
        }
        public static bool IsBrowserEmulationSet()
        {
            return GetBrowserEmulationVersion() != BrowserEmulationVersion.Default;
        }
    } 

Вам просто нужно создать класс и поместить в него этот код, а затем запустить следующий код при запуске программы:

 if (!WBEmulator.IsBrowserEmulationSet())
            {
                WBEmulator.SetBrowserEmulationVersion();
            }
  • 1
    Отлично!! Спасибо вам большое!
  • 1
    Переведен на Python (работает с приложением IronPython), и он работал отлично. Спасибо!
Показать ещё 4 комментария
18

Посмотрите на элемент управления Mono.WebBrowser - он включает либо Gecko (как используется Firefox), либо WebKit (как используется Safari) в WinForms (без использования ActiveX).

14

Я знаю, что это не "замещающий" элемент управления WebBrowser, но у меня были некоторые ужасные проблемы с рендерингом, показывая страницу, использующую BootStrap 3+ для макета и т.д., а затем я нашел сообщение, в котором предлагалось использовать следующее. По-видимому, он специфичен для IE и говорит ему использовать самую последнюю вариацию, найденную на клиентской машине для рендеринга (поэтому он не будет использовать IE7, как я считаю, по умолчанию)

Так просто поставьте:

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />

где-то в главной части вашего документа.

Если, конечно, это не ваш документ, то это, очевидно, не поможет (хотя я лично считаю, что это дыра в безопасности, если вы читаете страницы, не созданные самим собой через элемент управления веб-браузером - почему бы просто не использовать веб-браузер!)

Удачи.

  • 0
    Если вы хотите, чтобы это работало на ПК с IE7, не помещайте его где-нибудь в <head> , а в качестве самого первого потомка <head> . Нам потребовалось время, чтобы понять это.
  • 0
    Извините, я имел в виду IE8, а не IE7 в моем предыдущем комментарии. Поэтому в IE8, если вы не поместите <meta> в качестве первого дочернего элемента <head> , он будет работать в режиме совместимости, а не в пограничном режиме.
Показать ещё 6 комментариев
11

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

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

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

Подробнее см. Справочник API.

В приведенном ниже фрагменте кода показано, как создать браузер, вставить его в форму и загрузить 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");
        }
    }
}

После запуска приведенного выше примера вы получите следующий вывод:

Изображение 1103

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

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

  • 8
    Остерегайтесь высокой цены этого продукта
  • 0
    Это не с открытым исходным кодом, это лицензия не дешевле.
Показать ещё 1 комментарий
8

Я пробовал несколько вариантов Webkit, но по моему опыту ничего не сравнится с достижениями, которые OpenWebkitSharp. Люблю его это любить. Оценки HTML5 и CSS3 находятся как можно ближе к Google Chrome. Очень хороший API и eventing-модель. Если вы обнаружите "не реализованные" API, скорее всего, потому что они не реализованы в Webkit. Все остальное отлично работает.

OpenWebKitSharp - это .net-оболочка для механизма webkit, основанная на Проект WebKit.NET 0.5. Он добавляет больше возможностей для версии 0.5 и он предоставляет больше методов, чем эта сборка. Поддержка OpenWebKitSharp как Cairo build (0.5), так и ночные сборки webkit (Nightly по умолчанию). В версии 1.5 Стабильный и более ночная сборка включены и автоматически копируются после строительства. В более ранних версиях это происходит с каирской сборкой. В настоящее время OpenWebKitSharp предоставляет полномочия GTLite Navigator, быстрый, стабильный и гибкий веб-браузер.

  • 1
    Благодарю. Это похоже на отличную находку!
  • 0
    Их форумы также довольно активны, и я получил очень быстрые ответы на мои вопросы. Теперь я использую это для всех моих нужд контроля веб-браузера
Показать ещё 4 комментария
5

Попробуйте EO.WebBrowser. Он новый и основан на последней версии браузера Chrome. Самое приятное в этом - это то, что он упаковывает все внутри единой .NET-библиотеки .NET, поэтому он не только очень прост в использовании и развертывании, но и одна и та же DLL поддерживает как 32-битные, так и 64-разрядные версии, поскольку это .NET dll.

  • 8
    В будущем, пожалуйста, укажите, что это коммерчески лицензированный продукт, и если у вас есть какие-либо связи с продуктом, см. Избегайте явной саморекламы в часто задаваемых вопросах.
  • 1
    После поисков ГОДОВ - безумного шляпника - этот «коммерческий» элемент управления - ЕДИНСТВЕННАЯ рабочая замена вставки для IE, с которой мне не пришлось возиться и не испортил ни один из моих нынешних браузеров. настройки. - если пометка, я не связан с EO в любой форме или форме. Я взбешен тем, что все эти другие решения - абсолютно бесполезный мусор и пустая трата времени.
Показать ещё 4 комментария
4

Я использовал GeckoFX, и он мне очень помогает. Он использует движок Firefox. Единственное предостережение, с которым я когда-либо сталкивался, заключается в том, что он выдает событие "DocumentLoaded" один раз, прежде чем документ будет полностью загружен... Я думаю, что он запускает один, когда загружается HTML, а затем еще один, когда все загружаются изображения и прочее. Я исправил это, просто проигнорировав первый, и он отлично работал без сбоев до сих пор.

Вы можете найти его здесь: https://bitbucket.org/geckofx/

Как и большинство достойных библиотек, это open-source.

  • 1
    Все работающие на Firefox компоненты работают с пользователями Firefox. К счастью, большинство из этих решений вообще не работают, и, если повезет, они сохранят ваши настройки Firefox в такте - не так уж повезло, вы потеряете все свои настройки, и у вас все равно не будет ничего лучше, чем IE в качестве вставки.
  • 0
    Ссылка мертва и со старой сборки. bitbucket.org/geckofx имеет текущую версию
Показать ещё 1 комментарий
3

MozNet - это элемент управления .NET, ранее основанный на более или менее заброшенном элементе управления GeckoFX, но находится в полной разработке и имеет больше возможностей, чем GeckoFX может встряхнуть палку. Вы можете найти его на веб-сайте Se7en Soft.

  • 0
    GeckoFX активно развивается в: bitbucket
2

ОБНОВЛЕНИЕ 2018 МОЖЕТ

Если вы нацеливаете приложение на запуск в Windows 10, теперь вы можете встроить браузер Edge в свое.net-приложение с помощью инструментария Community Community Toolkit.

Пример WPF:

1) Установите пакет Nuget для пакета Community Community Toolkit

Install-Package Microsoft.Toolkit.Win32.UI.Controls -Version 3.0.0-preview

2) Код XAML

<Window
    x:Class="WebViewTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:WPF="clr-namespace:Microsoft.Toolkit.Win32.UI.Controls.WPF;assembly=Microsoft.Toolkit.Win32.UI.Controls"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:local="clr-namespace:WebViewTest"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    Title="MainWindow"
    Width="800"
    Height="450"
    mc:Ignorable="d">
    <Grid>
        <WPF:WebView x:Name="wvc" />
    </Grid>
</Window>

3) Код CS:

public partial class MainWindow : Window
{
  public MainWindow()
  {
    InitializeComponent();

    // You can also use the Source property here or in the WPF designer
    wvc.Navigate(new Uri("https://www.microsoft.com"));
  }
}

Пример WinForms:

public partial class Form1 : Form
{
  public Form1()
  {
    InitializeComponent();

    // You can also use the Source property here or in the designer
    webView1.Navigate(new Uri("https://www.microsoft.com"));
  }
}

Для получения дополнительной информации см. Эту ссылку.

Примечание. Эта библиотека находится в стадии предварительного просмотра.

2

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

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

1. BrowseEmAll.Cef

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

2. BrowseEmAll.Gecko

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

3. API BrowseEmAll Core

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

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

2

EO.BrowserControl - это быстро и просто. Он имеет браузер Chrome и работает с любой версией .NET.

https://visualstudiogallery.msdn.microsoft.com/fcee0646-42e7-484f-b22e-f8b2ace55dd7

Примечание. Это коммерчески лицензированный продукт, и я не продвигаю его с учетом этого. Пробовав различные другие вещи, я решил это сделать.

1

Geckofx и Webkit.net были обещаны сначала, но они не обновлялись с Firefox и Chrome соответственно, пока улучшался Internet Explorer, так же как и элемент управления Webbrowser, хотя по умолчанию он работает как IE7 независимо от того, что IE, но это можно исправить, перейдя в реестр и изменив его на IE9, позволяя HTML5.

1

Если вы ищете хороший элемент управления на основе IE - проверьте: http://code.google.com/p/csexwb2/

Я использовал его в продуктах. Это довольно хорошо и имеет хорошие демонстрации, хотя, похоже, сейчас не поддерживается так же, как и раньше.

1

Проверьте GeckoFX.

0

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

Для меня единственной надежной, поддерживаемой версией браузера IE является EO.WebBrowser. Я провел дни и неделю, пробуя остальных. У всех из них были некоторые проблемы, которые остановили шоу для меня в какой-то момент.

  • 0
    Ну ... я болтался неделю? пытаюсь заставить работать MS WebBrowser - все безрезультатно. Не пробовал ни одного из остальных =: - {кроме EO.WebBrowser, который работал у меня впервые. Таким образом, это 20 минут с EO и успехом против 5 дней с MS и полным и полным позорным провалом. Все, что я должен сделать сейчас, это найти 750 долларов, чтобы купить «успех» !!!
0

Я пробовал все браузеры, которые там есть. К сожалению, единственный, кто действительно работал у меня при любых обстоятельствах, был EO.Browser. Хотелось бы, чтобы я выбрал бесплатное решение, но я оказался в EO.Browser. Это довольно дорого, но в хорошем состоянии.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню