FMX.WebBrowser.TWebBrowser

De RAD Studio API Documentation
Aller à : navigation, rechercher

FMX.WebBrowser.TCustomWebBrowserFMX.Controls.TControlFMX.Types.TFmxObjectSystem.Classes.TComponentSystem.Classes.TPersistentSystem.TObjectTWebBrowser

Delphi

TWebBrowser = class(TCustomWebBrowser)

C++

class PASCALIMPLEMENTATION TWebBrowser : public TCustomWebBrowser

Propriétés

Type Visibilité  Source Unité  Parent
class public
FMX.WebBrowser.pas
FMX.WebBrowser.hpp
FMX.WebBrowser FMX.WebBrowser


Description

TWebBrowser définit un navigateur web.

TWebBrowser est un composant visuel qui permet le chargement et l'affichage de contenu web ou de fichiers locaux. L'URL chargée ou le nom du fichier chargé est spécifié via la propriété URL.

TWebBrowser procure la prise en charge des fonctions de base d'un navigateur : navigation vers l'URL, Précédent, Suivant, ainsi que les événements spécifiques.

Pour charger et afficher du contenu dans TWebBrowser, appelez la méthode Navigate avec l'URL ou le nom de fichier comme paramètre ou définissez la propriété URL, puis appelez la méthode Navigate sans aucun paramètre.

Pour charger et afficher des fichiers locaux, déployez explicitement le fichier devant être affiché en l'ajoutant au Gestionnaire de déploiement et ajoutez la chaîne 'file://' avant le nom du fichier, lors de l'appel à la méthode Navigate.

Exemple de chargement d'un fichier local :

WebBrowser1.Navigate('file://MyFile.pdf')
Remarque: Le composant TWebBrowser est disponible sur toutes les plates-formes cibles prises en charge.
Remarque: Depuis RAD Studio 11.1, des améliorations ont été apportées à TWebBrowser sur Windows (avec prise en charge de WebView 2), y compris la capacité de changer le moteur Windows plusieurs fois. La valeur par défaut de la propriété WindowsEngine a été modifiée.

Prise en charge de JavaScript Integration sur la plate-forme Windows

Sur les plates-formes cible Windows (WIN32 et WIN64), TWebBrowser peut ne pas afficher correctement certaines pages Web si un site web utilise des boîtes de dialogue, panneaux et d'autres élément JavaScript pour différentes raisons.

Pour contourner ce problème, votre application doit afficher les pages web dans le mode edge de IE11 en utilisant la fonctionnalité FEATURE_BROWSER_EMULATION de Internet Explorer.

Pour utiliser cette fonctionnalité, effectuez les modifications appropriées dans le registre Windows, comme décrit dans MSDN (EN).

Vous pouvez effectuez les modifications appropriées manuellement en effectuant les étapes suivantes :

  1. Ouvrez l'éditeur du registre.
  2. Ouvrez la clé suivante : HKEY_CURRENT_USER > Software > Microsoft > Internet Explorer > Main > FeatureControl > FEATURE_BROWSER_EMULATION.
  3. Dans le menu Edition, sélectionnez Nouveau, puis cliquez sur Valeur DWORD (32 bits).
  4. Définissez le nom de cette nouvelle entrée sur le nom de votre fichier exécutable, tel que MyApps.exe.
  5. Sélectionnez l'entrée nouvellement créée, et cliquez sur Modifier dans le menu Edition.
  6. Dans la boîte de dialogue Edition qui s'ouvre, suivez les étapes ci-après :
    • Dans la zone de texte Données de la valeur, entrez 11011.
    • Sous Base, sélectionnez Décimal.
    • Cliquez sur OK pour enregistrer les modifications.

Vous pouvez également permettre à votre application d'effectuer les modifications décrites ci-dessus au démarrage de l'application. Par exemple, dans votre projet, le gestionnaire d'événement FormCreate peut appelez la méthode TForm1.SetPermissions suivante :

Delphi :
procedure TForm1.FormCreate(Sender: TObject);
begin
{$IFDEF MSWINDOWS}
  SetPermissions;
{$ENDIF}
end;

{$IFDEF MSWINDOWS}
procedure TForm1.SetPermissions;

const
  cHomePath = 'SOFTWARE';
  cFeatureBrowserEmulation =
    'Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION\';
  cIE11 = 11001;

var
  Reg: TRegIniFile;
  sKey: string;
begin

  sKey := ExtractFileName(ParamStr(0));
  Reg := TRegIniFile.Create(cHomePath);
  try
    if Reg.OpenKey(cFeatureBrowserEmulation, True) and
      not(TRegistry(Reg).KeyExists(sKey) and (TRegistry(Reg).ReadInteger(sKey)
      = cIE11)) then
      TRegistry(Reg).WriteInteger(sKey, cIE11);
  finally
    Reg.Free;
  end;

end;
{$ENDIF}
C++Builder :
void __fastcall TForm1::FormCreate(TObject *Sender) {
	SetPermissions();
}

void __fastcall TForm1::SetPermissions() {
#ifdef _Windows
	UnicodeString cHomePath = "SOFTWARE";
	UnicodeString cFeatureBrowserEmulation =
		"Microsoft\\Internet Explorer\\Main\\FeatureControl\\FEATURE_BROWSER_EMULATION\\";
	int cIE11 = 11001;
	UnicodeString sKey = ExtractFileName(ParamStr(0));
	TRegIniFile *Reg = new TRegIniFile(cHomePath);
	__try {
		TRegistry *reg1 = dynamic_cast<TRegistry*>(Reg);
		if (Reg->OpenKey(cFeatureBrowserEmulation,
			true) && !(reg1->KeyExists(sKey) && reg1->ReadInteger(sKey)
			== cIE11)) {
			reg1->WriteInteger(sKey, cIE11);
		}
	}
	__finally {
		Reg->Free();
	}
#endif
}


Remarque: Vous devez apporter ces modifications au registre avant de démarrer l'application. Lorsque vous démarrez l'application pour la première fois, fermez-la, puis lancez-la à nouveau.


Voir aussi