FMX.WebBrowser.TWebBrowser

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

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

Delphi

TWebBrowser = class(TCustomWebBrowser)

C++

class PASCALIMPLEMENTATION TWebBrowser : public TCustomWebBrowser

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
class public
FMX.WebBrowser.pas
FMX.WebBrowser.hpp
FMX.WebBrowser FMX.WebBrowser


Beschreibung

TWebBrowser definiert einen Webbrowser.

TWebBrowser ist eine visuelle Komponente, die das Laden und Anzeigen von Webinhalt oder lokalen Dateien ermöglicht. Der geladene URL oder der Name der geladenen Datei wird in der Eigenschaft URL angegeben.

TWebBrowser unterstützt die grundlegenden Funktionen eines Browsers, wie z. B.: Navigieren zum URL, Zurück, Vorwärts sowie bestimmte Ereignisse.

Um Inhalt in TWebBrowser zu laden und anzuzeigen, rufen Sie die Methode Navigate mit dem URL oder dem Dateinamen als Parameter auf, oder legen Sie die Eigenschaft URL fest, und rufen Sie die Methode Navigate ohne Parameter auf.

Um lokale Dateien zu laden und anzuzeigen, stellen Sie die anzuzeigende Datei explizit bereit, indem Sie sie dem Bereitstellungs-Manager hinzufügen und beim Aufrufen der Methode Navigate vor dem Dateinamen den String "file://" einfügen.

Beispiel für das Laden einer lokalen Datei:

WebBrowser1.Navigate('file://MyFile.pdf')
Hinweis: Die Komponente TWebBrowser steht für alle unterstützten Zielplattformen zur Verfügung.
Hinweis: Ab RAD Studio 11.1 wurden an TWebBrowser unter Windows (mit WebView 2-Unterstützung) Verbesserungen vorgenommen, einschließlich der Möglichkeit, die Windows-Engine mehrmals zu ändern. Der Standardwert der Eigenschaft WindowsEngine wurde geändert.

Unterstützen von JavaScript-Integration auf Windows-Plattformen

Auf Windows-Zielplattformen (WIN32 und WIN64) kann TWebBrowser einige Webseiten inkorrekt anzeigen, wenn eine Webseite JavaScript-Dialogfelder, Tafeln und andere Elemente für verschiedene Zwecke verwendet.

Um dieses Problem zu umgehen, sollte Ihre Anwendung Webseiten im IE11-Edge-Modus mit dem FEATURE_BROWSER_EMULATION-Feature von Internet Explorer verwenden.

Um dieses Feature zu verwenden, nehmen Sie die angemessenen Änderungen an der Windows-Registrierung, wie in MSDN beschrieben, vor.

Sie können angemessene Änderungen manuell durch Ausführen der folgenden Schritte vornehmen:

  1. Öffnen Sie den Registrierungs-Editor.
  2. Öffnen Sie den folgenden Schlüssel: HKEY_CURRENT_USER > Software > Microsoft > Internet Explorer > Main > FeatureControl > FEATURE_BROWSER_EMULATION.
  3. Zeigen Sie im Menü Bearbeiten auf Neu und klicken Sie dann auf DWORD- (32-Bit) Wert.
  4. Setzen Sie den Namen dieses neuen Eintrags auf Ihren ausführbaren Dateinamen, wie MyApps.exe.
  5. Wählen Sie den neu erstellten Eintrag, und klicken Sie im Menü Bearbeiten auf Ändern.
  6. Im Dialogfeld Bearbeiten, das geöffnet wird, führen Sie Folgendes durch:
    • Geben Sie im Textfeld Wertdaten 11011 ein.
    • Wählen Sie unter Basis Dezimal.
    • Klicken Sie auf OK, um Ihre Änderungen zu speichern.

Dies veranlasst, dass Ihre Anwendung die oben genannten Änderungen durchführt, wenn die Anwendung gestartet wird. So kann z. B. die Ereignisbehandlungsroutine FormCreate in Ihrem Projekt die folgende TForm1.SetPermissions-Methode aufrufen:

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
}


Hinweis: Sie sollten diese Änderungen an der Registrierung vornehmen, bevor Sie die Anwendung starten. Wenn Sie die Anwendung zum ersten Mal gestartet haben, schließen Sie sie und starten Sie sie dann erneut.


Siehe auch