Ich habe ein paar COM-Steuerelemente gesehen, die die Gecko-Rendering-Engine umhüllen (GeckoFX, sowie die von Mozilla - mozctlx.dll gelieferte Steuerung). Gibt es einen Wrapper für Webkit, der in eine .NET Winform-Anwendung eingebunden werden kann?Gibt es eine einbettbare Webkit-Komponente für Windows/C# -Entwicklung?
Antwort
Es gibt eine WebKit-Sharp-Komponente auf Mono's GitHub Repository. Ich kann keine Web-fähige Dokumentation darüber finden, und ich bin mir nicht einmal sicher, ob es WinForms oder GTK # ist (kann die Quelle von hier nicht im Moment abrufen), aber es ist wahrscheinlich auch die beste Wahl Weg.
Ich glaube nicht, dass es eine aktueller da draußen ist, aber es ist ein [kaum dokumentiert] Projekt auf Google Code mit einer älteren Version ...
Swift verwendet Charns WebKit Build, aber Charn ist nicht mehr verfügbar. –
Es wird angezeigt, dass das Swift-Tool aus Google Code entfernt wurde. –
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 nicht bereits verwenden.
Kann man Qt4 aus C# heraus benutzen? –
Es gibt eine WebKit-Sharp-Komponente auf Monos Subversion-Server. Ich kann keine Web-fähige Dokumentation darüber finden, und ich bin mir nicht einmal sicher, ob es WinForms oder GTK # ist (kann die Quelle von hier nicht im Moment abrufen), aber es ist wahrscheinlich auch die beste Wahl Weg.
Ich denke, diese Komponente ist CLI-Wrapper um Webkit für Ubuntu. So könnte dieser Wrapper höchstwahrscheinlich nicht auf Win32
arbeiten Versuchen Sie eine andere Variante - Projekt awesomium - Wrapper um Google-Projekt "Chromium", die Webkit verwenden. Auch Awesomium hat Funktionen wie interavtive Webseiten auf 3D-Objekten unter WPF
haben noch nicht versucht, aber gefunden WebKit.NET auf SourceForge. Es wurde auf GitHub verschoben.
Warnung: nicht mehr gepflegt, letzte Commits sind von Anfang 2013
Ich habe das vor ein paar Monaten in Ordnung gebracht. Schien gut zu funktionieren. – Tristan
Dieses Projekt wird nicht mehr gepflegt - ich konnte unter Visual Studio 2012 weder etwas kompilieren noch eine aktuelle Implementierung von WebKit durchführen. –
Ich habe lassen Sie einfach eine Pre-Alpha-Version von CefSharp meine .Net-Anbindung für die Chromium Embedded Framework-.
Check it out und gib mir deine Gedanken: https://github.com/chillitom/CefSharp (binär Libs und Beispiel in der Download-Seite)
Update: eine neue Version freigegeben, beinhaltet die Fähigkeit, C# Objekte in das DOM zu binden und mehr.
Update 2: no-longer alpha, lib ist in der realen Welt Projekte wie Facebook Messenger für Windows, Rdio Windows-Client und Github für Windows
versuchen verwendet dieses http://code.google.com/p/geckofx/ hoffen, dass es nicht ist tölpeln oder das ich denke, ist besser http://webkitdotnet.sourceforge.net/
Es gibt OpenWebKitSharp, eine Abzweigung von WebKit.NET 0.5 und sehr fortgeschritten. Details: http://code.google.com/p/open-webkit-sharp/
Ich konnte dies mit CefSharp (die chromium browser verwendet) tun.
Hier sind ein paar Stellen, die diese in Aktion zeigen:
Werfen Sie einen Blick auf die DotNetBrowser Bibliothek. Es bietet Chrom-basierte WPF- und WinForms-Browsersteuerelemente, die sehr einfach in .NET-Anwendungen eingebettet werden können. Es unterstützt alle modernen Web-Standards wie HTML5, CSS3 und JavaScript. Die gerenderte Seite sieht genau wie in Google Chrome aus.
Die Bibliothek erbt die Multi-Prozess-Architektur von Chromium - jede Webseite wird in einem separaten Chromium-Prozess gerendert und die Anwendung funktioniert auch nach dem Absturz des Plugins oder einem anderen unerwarteten Fehler auf der Webseite.
Hier sind einige andere nützliche Funktionen von DotNetBrowser: es ist möglich, Ereignisse zu laden, Netzwerkaktivität zu verwalten, Proxy zu konfigurieren, Benutzeraktionen zu simulieren, mit Cookies zu arbeiten, auf DOM zuzugreifen und sie zu ändern, DOM-Ereignisse anzuhören JavaScript von .NET und umgekehrt, Webkamera und Mikrofon auf der Webseite verwenden, WebRTC-basierte Kommunikation einrichten und more.
Überprüfen Sie die API Reference für weitere Details.
Der Codeausschnitt unten zeigt, wie ein BrowserView erstellen, betten sie in eine Form, und laden Sie eine 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");
}
}
}
Sobald Sie das Beispiel laufen über die folgende Ausgabe erhalten:
Die Bibliothek ist kommerziell, jedoch für die Verwendung in Open-Source- und akademischen Projekten frei. Kommerzielle Lizenzen beinhalten Support-Pakete für verschiedene Teamgrößen. Es ist auch möglich, den Quellcode der Bibliothek zu erwerben.
Neben der eigenen Seite ist die Komponente als NuGet package und als VSIX package im Visual Studio Marketplace verfügbar.
Dieses Produkt sieht wie eine vernünftige Lösung aus, aber beachten Sie, dass "Sie Ihre Zugehörigkeit in Ihren Antworten offen legen müssen". http://stackoverflow.com/help/promotion – Sire
Jon, was hast du endlich gewählt? Gecko oder WebKit? –