2008-09-26 11 views

Antwort

17

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.

+0

Ich war nicht erfolgreich versuchen, dies vor ein paar Wochen auf Windows zu bauen, wäre aber daran interessiert, wenn jemand anderes dies bauen könnte. –

+0

Link ist unterbrochen ... – jjxtra

+0

@PsychoDad Fixed. – vcsjones

1

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 ...

+0

Swift verwendet Charns WebKit Build, aber Charn ist nicht mehr verfügbar. –

+0

Es wird angezeigt, dass das Swift-Tool aus Google Code entfernt wurde. –

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 nicht bereits verwenden.

+0

Kann man Qt4 aus C# heraus benutzen? –

7

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

38

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

+0

Ich habe das vor ein paar Monaten in Ordnung gebracht. Schien gut zu funktionieren. – Tristan

+2

Dieses Projekt wird nicht mehr gepflegt - ich konnte unter Visual Studio 2012 weder etwas kompilieren noch eine aktuelle Implementierung von WebKit durchführen. –

38

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

+0

cool, als Sie für die gemeinsame Nutzung Ihrer Software –

+0

Großartig! WPF-Version ist da drüben! – Itachi

+0

Leider ist es nur Windows. – cubuspl42

2

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:

enter image description here

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.

+1

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