Gibt es eine einbettbare Webkit-Komponente für die Windows / C # -Entwicklung?

72

Ich habe einige COM-Steuerelemente gesehen, die die Gecko-Rendering-Engine ( GeckoFX sowie das von Mozilla gelieferte Steuerelement - mozctlx.dll ) umschließen . Gibt es einen Wrapper für Webkit, der in einer .NET Winform-Anwendung enthalten sein kann?

Jon Galloway
quelle
Jon, was hast du endlich gewählt? Gecko oder WebKit?
Piotr Dobrogost

Antworten:

18

Es gibt eine WebKit-Sharp-Komponente im GitHub-Repository von Mono . Ich kann keine im Internet sichtbare Dokumentation finden und bin mir nicht einmal sicher, ob es sich um WinForms oder GTK # handelt (ich kann die Quelle von hier aus nicht abrufen, um sie im Moment zu überprüfen), aber es ist wahrscheinlich auch Ihre beste Wahl Weg.

Alex Lyman
quelle
Ich hatte vor einigen Wochen keinen Erfolg damit, dies unter Windows zu erstellen, wäre aber interessiert, ob jemand anderes dies zum Erstellen bringen könnte.
Adam Hughes
40

Ich habe gerade eine Pre-Alpha-Version von CefSharp my .Net- Bindungen für das Chromium Embedded Framework veröffentlicht .

Probieren Sie es aus und geben Sie mir Ihre Gedanken: https://github.com/chillitom/CefSharp (Binärbibliotheken und Beispiel auf der Downloadseite verfügbar)

Update : Eine neue Version wurde veröffentlicht. Sie bietet die Möglichkeit, C # -Objekte an das DOM zu binden und vieles mehr.

Update 2 : Nicht mehr Alpha, lib wird in realen Projekten verwendet, einschließlich Facebook Messenger für Windows, Rdios Windows-Client und Github für Windows

chillitom
quelle
Toll! Die WPF-Version ist da drüben!
Itachi
Leider ist es nur Windows.
cubuspl42
@ cubuspl42 checkt das CefGlue-Projekt aus, das plattformübergreifend ausgeführt werden kann, da es P / Invoke anstelle von C ++ / CLI für seine Interop verwendet.
Chillitom
2020 und CefSharp wird weiterhin beibehalten. Das ist ein großer Gewinn.
Jason Foglia
38

Ich habe es noch nicht versucht, aber WebKit.NET auf SourceForge gefunden. Es wurde nach GitHub verschoben .

Warnung: Wird nicht mehr gewartet, die letzten Commits stammen aus Anfang 2013

Petr Havlicek
quelle
Ich habe das vor ein paar Monaten gut gemacht. Schien gut zu funktionieren.
Tristan
2
Dieses Projekt wird nicht mehr gepflegt. Unter Visual Studio 2012 konnte weder etwas kompiliert werden, noch ist WebKit auf dem neuesten Stand.
Elad Nava
7

Auf Monos Subversion Server befindet sich eine WebKit-Sharp-Komponente. Ich kann keine im Internet sichtbare Dokumentation finden und bin mir nicht einmal sicher, ob es sich um WinForms oder GTK # handelt (ich kann die Quelle von hier aus nicht abrufen, um sie im Moment zu überprüfen), aber es ist wahrscheinlich auch Ihre beste Wahl Weg.

Ich denke, diese Komponente ist ein CLI-Wrapper um das Webkit für Ubuntu. Dieser Wrapper könnte also höchstwahrscheinlich nicht unter win32 funktionieren

Versuchen Sie, eine andere Variante zu überprüfen - Project Awesomium - Wrapper um das Google-Projekt " Chromium ", das Webkit verwendet. Auch awesomium hat Funktionen, die Webseiten auf 3D-Objekten unter WPF interavtivieren sollen

Regfor
quelle
2

Die Windows-Version von Qt 4 enthält sowohl WebKit als auch Klassen zum Erstellen von ActiveX-Komponenten. Es ist wahrscheinlich keine ideale Lösung, wenn Sie Qt noch nicht verwenden.

Andy Brice
quelle
Kann man Qt4 aus c # heraus verwenden?
Kevin Driedger
2

Schauen Sie sich die DotNetBrowser- Bibliothek an. Es bietet Chromium-basierte WPF- und WinForms-Browsersteuerelemente, die sich ganz einfach in .NET-Anwendungen einbetten lassen. Es unterstützt alle modernen Webstandards einschließlich HTML5, CSS3 und JavaScript. Die gerenderte Seite sieht genauso aus wie in Google Chrome.

Die Bibliothek erbt die Multiprozessarchitektur von Chromium. Jede Webseite wird in einem separaten Chromium-Prozess gerendert, und die Anwendung funktioniert auch nach einem Absturz des Plugins oder einem anderen unerwarteten Fehler auf der Webseite weiter.

Hier sind einige andere nützliche Funktionen, die von DotNetBrowser bereitgestellt werden: Es ist möglich, Ladeereignisse abzuhören, Netzwerkaktivitäten zu verarbeiten, Proxys zu konfigurieren, Benutzeraktionen zu simulieren, mit Cookies zu arbeiten, auf DOM zuzugreifen und diese zu ändern, DOM-Ereignisse abzuhören und JavaScript aus .NET aufzurufen und umgekehrt: Verwenden Sie eine Webkamera und ein Mikrofon auf der Webseite, richten Sie eine WebRTC-basierte Kommunikation ein und vieles mehr .

Weitere Informationen finden Sie in der API-Referenz .

Das folgende Codefragment zeigt, wie Sie eine Browseransicht erstellen, in ein Formular einbetten und eine URL laden:

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");
        }
    }
}

Sobald Sie das obige Beispiel ausgeführt haben, erhalten Sie die folgende Ausgabe:

Geben Sie hier die Bildbeschreibung ein

Die Bibliothek ist kommerziell. Kommerzielle Lizenzen enthalten Support-Pakete für verschiedene Teamgrößen. Es ist auch möglich, den Quellcode der Bibliothek zu erwerben.

Neben einer eigenen Seite ist die Komponente als NuGet-Paket und als VSIX-Paket im Visual Studio Marketplace verfügbar .

Vladimir
quelle
1
Dieses Produkt scheint eine vernünftige Lösung zu sein, aber beachten Sie, dass "Sie Ihre Zugehörigkeit in Ihren Antworten offenlegen müssen". stackoverflow.com/help/promotion
Sire
1

Ich glaube nicht, dass es ein aktuelles gibt, aber es gibt ein [kaum dokumentiertes] Projekt auf Google Code mit einer älteren Version ...

Swilliams
quelle
Swift verwendet den WebKit-Build von Charn, Charn ist jedoch nicht mehr verfügbar.
Adam Hughes
Es scheint, dass das Swift-Tool aus Google Code entfernt wurde.
Kevin Driedger