web-dev-qa-db-fra.com

Utilisez chrome comme navigateur en C #?

Existe-t-il un moyen d'utiliser Google Chrome (ou Safari ou Firefox) comme navigateur dans une application C #? C # utilise désormais Internet Explorer, et le site Web qu'ils souhaitent utiliser dans ce programme ne fonctionne pas soutiens le.

47
Timo

Vous pouvez utiliser WebKit.NET . Il s'agit d'un wrapper C # pour WebKit, qui est le moteur de rendu utilisé par Chrome.

53
Reed Copsey

Vous pouvez utiliser GeckoFX pour intégrer Firefox

43
Joel Martinez

Je ne connais aucun complet Chrome composant, mais vous pouvez utiliser WebKit, qui est le moteur de rendu qui Chrome utilise. Le projet Mono a fait WebKit Sharp , ce qui pourrait fonctionner pour vous.

12
Travis Gockel

J'utilise Awesomium, je pense que c'est mieux que GeckoFX/WebKit http://awesomium.com

10
Liam Martens

OpenWebKitSharp vous donne un contrôle total sur WebKit Nightly, qui est très proche du webkit en termes de performances et de compatibilité. Chrome utilise le moteur WebKit Chromium, tandis que WebKit.NET utilise Cairo et OpenWebKitSharp Nightly. Chromium devrait être le meilleur de ces versions, tandis qu'à la 2e place devrait venir Nightly et c'est pourquoi je suggère OpenWebKitSharp.

http://gt-web-software.webs.com/libraries.htm dans la section OpenWebKitSharp

5
George
4
Dinis Cruz

1/3/2017 -> 3 janvier 2017

Bonjour, aujourd'hui, j'ai trouvé cet article pour y parvenir, l'article est intitulé "Création d'une interface HTML pour les applications Desktop .NET" et est destiné à intégrer un contrôle basé sur le chrome dans une application WPF. Cela m'a sauvé la journée.

https://www.infoq.com/articles/html-desktop-net

J'espère que cela aide quelqu'un d'autre.

REMARQUE: il est basé sur DotNetBrowser, voir le contrat de licence ici: https://www.teamdev.com/dotnetbrowser-licence-agreement

3
Juan
2
iamwill

Jetez un œil à la bibliothèque DotNetBrowser . Il fournit des contrôles de navigateur WPF et WinForms basés sur Chromium, qui sont assez faciles à intégrer dans une application .NET. Il prend en charge toutes les normes Web modernes, y compris HTML5, CSS3 et JavaScript. La page rendue ressemble exactement à Google Chrome.

La bibliothèque hérite de l'architecture multi-processus de Chromium - chaque page Web est rendue dans un processus Chromium distinct, et l'application continuera de fonctionner même après le plantage du plug-in ou toute autre erreur inattendue se produisant sur la page Web.

Voici quelques autres fonctionnalités utiles fournies par DotNetBrowser: il est possible d'écouter les événements de chargement, de gérer l'activité réseau, de configurer le proxy, de simuler les actions des utilisateurs, de travailler avec les cookies, d'accéder et de modifier le DOM, d'écouter les événements du DOM, d'appeler JavaScript à partir de .NET et vice versa, utilisez une caméra Web et un microphone sur la page Web, configurez la communication WebRTC et plus .

Consultez Référence API pour plus de détails.

L'extrait de code ci-dessous montre comment créer un BrowserView, l'intégrer dans un formulaire et charger une 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");
        }
    }
}

Une fois que vous avez exécuté l'exemple ci-dessus, vous obtiendrez la sortie suivante:

enter image description here

La bibliothèque est commerciale. Les licences commerciales incluent des packages de support pour différentes tailles d'équipe. Il est également possible d'acheter le code source de la bibliothèque.

Outre sa propre page, le composant est disponible sous la forme package NuGet et package VSIX dans Visual Studio Marketplace.

2
Vladimir

Mise à jour 2016:

Malheureusement, la plupart des solutions ci-dessus sont obsolètes et ne sont plus maintenues.

Je peux suggérer 3 options supplémentaires qui sont encore activement développées:

1. BrowseEmAll.Cef

Un composant .Net qui peut être utilisé pour intégrer le moteur Chrome dans votre application .Net. Basé sur CefGlue mais un peu plus rapide sur les mises à jour de la dernière version Chrome. Il existe également un support commercial option disponible qui pourrait être utile pour certains. Bien sûr, le composant lui-même est open source .

2. BrowseEmAll.Gecko

Un autre composant .Net qui peut être utilisé pour intégrer le moteur Firefox dans votre application .Net. Ceci est basé sur Geckofx mais contrairement à la version actuelle de Geckofx, cela fonctionnera avec une version normale de Firefox. Pour utiliser Geckofx, vous devrez créer Firefox vous-même. Encore une fois le support commercial est disponible mais le composant lui-même est entièrement open source .

. API BrowseEmAll Core

Besoin de tous les différents navigateurs de votre application .Net? Quelle API Core BrowseEmAll vous pouvez intégrer Chrome, Firefox, Webkit et Internet Explorer dans votre application. Il s'agit d'un produit commercial , alors soyez averti.

(Divulgation complète: je travaille pour cette entreprise, alors prenez tout ce que je dis avec un grain de sel)

2
daniel.herken

Mise à jour pour 2014:

J'utilise geckofx , un projet open source sain qui (au moment où j'écris) se tient à jour assez bien avec les dernières versions de Firefox.

Pour intégrer Chrome, vous pouvez envisager un autre projet open source d'apparence saine, Xilium.cefGlue , basé sur The Chromium Embedded Framework (CEF) .

Ces deux prennent en charge WPF et Winforms, et les deux projets prennent en charge .net et mono.

2
John Hatton