Браузер на WebKit

Многим наверно не нравиться стандартный контрол WebBrowser на базе IE, потому что выскакивают разные ошибки при загрузке веб страницы и не слишком быстро загружаются страницы, как хотелось бы.

Сегодня мы напишем браузер используя контрол WebKitBrowser.

Скачать WebKit.NET(13.3 мб)

Tutorial WebKit.NET

Теперь создайте новый проект, сохраните его на компьютере.

Извлеките архив.

Содержание архива :

Kit1 Браузер на WebKit

Зайдите в папку bin

Скопируйте все (кроме WebKitBrowserTest.exe) файлы из папки bin в папку с проектом в папку Debug (пример D:/Проект/bin/Debug)

Перечень файлов, которые должны быть в папке Debug :

Kit2 Браузер на WebKit

Переходим к проекту.

Кликните правой кнопкой мыши по панели элементов -> Выбрать элементы...

Kit3 Браузер на WebKit

Нажимаем на Выбрать элементы...

Kit4 Браузер на WebKit

Нажимаем кнопку Обзор... и выбираем из папки Debug - WebKitBrowser.dll

Потом появиться сообщение, нажимаем Да.

Нажимаем кнопку ОК.

Контрол WebKitBrowser добавился в ваш панель элементов :

Kit5 Браузер на WebKit

Добавляем его на форму и еще один TextBox и Button.

Kit6 Браузер на WebKit

Два раза кликаем по кнопке и пишем такой код :

WebKitBrowser1.Navigate(TextBox1.Text)

Запускаем F5.

Проверяем :

Пишем адрес какого-нибудь сайта и нажимаем на кнопку :

Kit7 Браузер на WebKit

Все отлично открывается и главное быстро, даже при медленном соединении.

Если у вас не запустилось и выдало ошибку : проверьте все ли файлы вы поместили в папку Debug в месте с программой. Если ошибка не убралась пишите мне, помогу решить проблему.

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

  Метки:
  Евгений
  Просмотров: 15 275
  Запись опубликована в 06:34

12 комментариев

  • Добрый день, у меня не получается авторизоватся на любом сайте. По ссылкам и кнопкам переходит, при нажатии на кнопку "вход","авторизация" ничего не происходит.

    • это косяк самого движка. Я пробовал тоже с помощью него авторизоваться на сайте - аналогично.

  • Как заменить строку для WebKitBrowser1, вместо элемента WebBrowser1:
    Dim H As HtmlElementCollection =
    WebBrowser1.Document.Body.GetElementsByTagName("a")

    • Как точно сказать не могу, но это можно. На форуме обсуждали такое, поищу и если найду дам ссылку.

    • Dim H As WebKit.Dom.NodeList =WebKitBrowser1.Document.GetElementsByTagName(«a»)
      Не подойдёт?

  • System.ComponentModel.Win32Exception не обработано
      HResult=-2147467259
      Message=Failed to initialize activation context
      Source=WebKitBrowser
      ErrorCode=-2147467259
      NativeErrorCode=2
      StackTrace:
           в WebKit.ActivationContext.Initialize()
           в WebKit.WebKitBrowser..ctor()
           в WindowsFormsApplication9.Form1.InitializeComponent() в c:\Users\AYSEN\Documents\Visual Studio 2012\Projects\WindowsFormsApplication9\WindowsFormsApplication9\Form1.Designer.cs:строка 33
           в WindowsFormsApplication9.Form1..ctor() в c:\Users\AYSEN\Documents\Visual Studio 2012\Projects\WindowsFormsApplication9\WindowsFormsApplication9\Form1.cs:строка 17
           в WindowsFormsApplication9.Program.Main() в c:\Users\AYSEN\Documents\Visual Studio 2012\Projects\WindowsFormsApplication9\WindowsFormsApplication9\Program.cs:строка 19
           в System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
           в System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
           в Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
           в System.Threading.ThreadHelper.ThreadStart_Context(Object state)
           в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
           в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
           в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
           в System.Threading.ThreadHelper.ThreadStart()
      InnerException:

  • не работает alert(((( :roll:

    • Что именно?

      • Добрый день, у меня Visual Studio 2013 Ultimate, а в списке выбора элементов (.Net Framework) нет элемента WebKitBrowser хотя всё делал по инструкции. Подскажите как это исправить, если это вообще можно сделать.

        • В этом окне нажми обзор и из Debug ( куда Ты закинул файлы ) выбирай WebKitBrowser.dll. Далее жми ОК! Внизу в списке элементов появится WebKitBrowser

Есть что сказать? Тогда действуй!