Потрясающий встраиваемый, развертываемый веб-браузер, свободно доступный для независимых разработчиков… Awesomium!
Иногда все мы хотим, чтобы наши приложения отображали какой-то HTML-контент. Но не хочется попадать в зависимость от Internet Explorer или других установленных веб-браузеров. Являясь любителем, независимым предпринимателем, или просто забавляясь дома, разработчик не имеет много ресурсов и просто нуждается в браузере, который можно легко встроить в приложение и развернуть вместе с ним. Что было бы потрясающе, так это возможность легко использовать его в приложениях .NET, VB.NET, WinForms или WPF.
Я представляю вам Awesomium!
Я вышел на него с помощью сообщения Криса Каваная (Chris Cavanagh) Awesomium – Free Indie License!
Awesomium – первая полнофункциональная, безоконная платформа веб-браузера.
Она безумно быстрая, поддерживает последние штучки и суперпроста при использовании в приложениях.
Замечательна для применения в 3D-играх, .NET-приложениях, HTML-интерфейсах и прочих вещах.
Для просмотра внутри игр:
Добавьте специальный браузер в игру, чтобы дать пользователям доступ к форумам, руководствам и дополнительному игровому контенту без выхода из приложения.
Для . NET и WPF :
Прекрасна при использовании с WPF; начните с перетаскивания элемента WebViewControl или используйте полный .NET API для всеобщей настройки. Нет проблем с областями «airspace»!
Для интерфейсов HTML :
Придайте мощь своим интерфейсам с помощью последнего поколения XHTML, CSS и JS. Сложившийся набор инструментов и возможности быстрого прототипирования предоставляют эту замечательную новую возможность для разработчиков игр.
И я сказал – свободна для небольших компаний, правда?
Теперь фактический исходник для Awesomium не является свободно распространяемым, но он доступен.
Но если исходник Awesomium не свободен, почему я говорю об этом браузере? Потому что SDK и оболочка AwesomiumSharp свободно доступны (с вышеизложенными условиями).
Ниже приведен снимок экрана примера браузера с закладками, написанного на C# WPF и включенного в SDK.
А здесь – все двоичные файлы для этого примера:
Решение AwesomiumSharp:
(Да, проект Mono тоже здесь... )
Т.к. я VB-шник, взглянем на код для VB.NET WinForm:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim config As WebCore.Config = New WebCore.Config()
config.enablePlugins = True
WebCore.Initialize(config)
webView = WebCore.CreateWebview(webViewBitmap.Width, webViewBitmap.Height)
webView.LoadURL("https://www.bing.com")
webView.Focus()
End Sub
Dim bmp As Bitmap
Private Sub render()
Dim rBuffer As RenderBuffer = webView.Render()
Dim data(webViewBitmap.Width * webViewBitmap.Height) As Integer
Marshal.Copy(rBuffer.GetBuffer(), data, 0, webViewBitmap.Width * webViewBitmap.Height)
bmp = New Bitmap(webViewBitmap.Width, webViewBitmap.Height, PixelFormat.Format32bppArgb)
Dim bits As BitmapData = bmp.LockBits(New Rectangle(0, 0, webViewBitmap.Width, webViewBitmap.Height), ImageLockMode.ReadWrite, bmp.PixelFormat)
Dim ptr As IntPtr = bits.Scan0.ToInt32()
rBuffer.CopyTo(ptr, bits.Stride, 4, False)
bmp.UnlockBits(bits)
webViewBitmap.Image = bmp
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
WebCore.Update()
If webView.IsDirty Then
render()
End If
End Sub
Да, возможно здесь несколько больше работы по использованию этого элемента управления, но мощь, предоставленную вам, сложно переоценить.
Принимая во внимание, что это, фактически, коммерческий продукт, вы могли бы ожидать некоторой документации…
Введение
Привет, добро пожаловать в документацию по Awesomium .NET API! Awesomium – это программная библиотека, с помощью которой легко добавить веб в ваши приложения. Что бы не означал встраиваемый веб-браузинг, рендеринг страниц в изображения, передачу страниц по сети или непосредственное манипулирование веб-контентом для иных целей, Awesomium все это делает.
Если вы впервые используете API, мы рекомендуем начать с AwesomiumSharp.WebCore и AwesomiumSharp.WebView.
Вот простой пример использования API для рендеринга страницы за один раз:
WebCore.Initialize(new WebCore.Config());
WebView webView = WebCore.CreateWebview(800, 600);
webView.LoadURL("https://www.google.com");
while (webView.IsLoadingPage())
WebCore.Update();
webView.Render().SaveToPNG("result.png", true);
WebCore.Shutdown();
Если вы заинтересованы лишь в том, чтобы просто добавить самостоятельный элемент WebView в WPF-приложение, прикладывая минимальные усилия, взгляните на AwesomiumSharp.WebViewControl (он будет доступен в панели инструментов, если вы добавите ссылку на AwesomiumSharp в свой проект, просто перетащив его туда).
Если вы ищете пути применения HTML в своем приложении и хотели бы встроить средство управляемого рендеринга, то это ваш билет в потрясающее…
Comments
Anonymous
June 23, 2011
А под Silverlight такой штуки случаем нету?Anonymous
June 23, 2011
support.awesomium.com/.../119-using-awesomium-with-silverlight-40Anonymous
February 14, 2013
Подскажите, пожалуйста, а как в Awesomium возможно заполнять текстовые поля на странице сайта, нажимать кнопки? В документации не могу найти.Anonymous
March 13, 2013
hello. please tell me how to enable ntlm authentication