Intégration de CefSharp pour les navigateurs embarqués dans les applications .NET

CefSharp fournit des bindings .NET pour le framework Chromium Embedded, compatible avec WPF et Windows Forms.

Installation via NuGet : Install-Package CefSharp.Wpf.

Ce composant tierce-parti populaire présente certaines difficultés, mais sa large adoption en fait un choix courant pour intégrer un navigateur dans une application Windows.

Gestion des sous-processus Cef

Pour éviter les problèmes liés aux sous-processus, assurez-vous d'appeler la méthode de nettoyage appropriée :

Chromium.Cef.Fermer();

Personnalisation du menu contextuel

Implémentez une gestionnaire de menu pour supprimer les options par défaut :

class GestionnaireMenuPersonnalise : Chromium.IContexteMenuGestionnaire
{
    public void AvantAfficherMenu(IModeleMenu modele)
    {
         modele.Effacer();
    }
    // Autres méthodes requises par l'interface
}

Configuraton de la langue préférée

Pour forcer les sites web à retourner du contenu dans une langue spécifique, modifiez les en-têtes des requêtes :

public RetourCef AvantChargementRessource(IRequete requete)
{
    var enTetes = requete.EnTetes;
    enTetes.Definir("accept-language", "fr-FR,fr;q=0.8,en;q=0.6");
    requete.EnTetes = enTetes;
    return Chromium.RetourCef.Continuer;
}

Support en temps de conception

Le contrôle CefSharp pour WPF ne prend pas en charge le design-time, nécessitant généralement une instanciation programmatique du navigateur.

Optimisation du déploiement des ressources

Pour réduire le nombre de fichiers DLL dans le répertoire principal, déplacez les dépendances CefSharp dans un sous-dossier et configurez l'assemblage.

// FodyWeavers.xml pour exclure CefSharp de la fusion
<Weavers>
  <Costura ExcludeAssemblies="Chromium|Chromium.Noyau|Chromium.Wpf"/>
</Weavers>

// App.Config pour spécifier le chemin de recherche des assemblies
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="cef\binaires" />
    </assemblyBinding>
  </runtime>
</configuration>

// Initialisation de Cef avec des chemins personnalisés
internal static void Configurer()
{
    string cheminLib = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"cef\binaires\libcef.dll");
    string cheminNavigateur = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"cef\binaires\Chromium.SousProcessus.exe");
    string cheminLocales = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"cef\binaires\locales\");
    string cheminRessources = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"cef\binaires\");
    
    var parametres = new ParametresCef();
    parametres.CheminSousProcessus = cheminNavigateur;
    parametres.CheminLocales = cheminLocales;
    parametres.CheminRessources = cheminRessources;
    
    Chromium.Initialiser(parametres, true, null);
}

Étiquettes: CefSharp WPF Windows Forms Chromium Embedded Framework .NET

Publié le 1 juillet à 16h21