TbeCBEdgeBrowser
TbeCBEdgeBrowser
Eine Komponente für die Anzeige von HTML Inhalten bzw. Webseiten.
Als Basis dient die Microsoft webview2/Edge Komponente. Der jeweils erste Aufruf bzw. Darstellung der Komponente kann zu einer kurzen Verzögerung führen, da erst alle zu Darstellung notwenigen DLLs geladen werden müssen.
Eigenschaften
Achtung: viele der Eigenschaften können nicht zur Design-Zeit verändert werden, bzw. haben dann keine Auswirkung, außerdem müssen viele der Eigenschaften vor dem Aktivieren gesetzt sein und können auch später nicht mehr verändert werden oder haben dann keine Auswirkung.
Eigenschaft | Beschreibung |
---|---|
CbAllowNewWindow:L | true = Links innerhalb von Webseiten können in einem neuen (externen) Fenster geöffnet werden (default) false |
CbScriptDialogsEnabled:L | Anzeige von Standard JavaScript Dialogen z.B. Alert('Test') (default) false |
CbScriptEnabled:L | Ausführung von JavaScript aktiv (default) false |
CbUserAgent:C | User Agent der bei Anfragen übermittelt wird (default) Mozilla/4.0 (compatible) |
CbCurrentUrl:C | Aktuelle URL die angezeigt/aufgerufen wird (Readonly) |
CbCanGoBack:L | Kann im Verlauf zurück gesprungen werden (Readonly) |
CbCanGoForward:L | Kann im Verlauf vorwärts gesprungen werden (Readonly) |
CbMuted:L | Audio Stummschaltung (default) true |
CbScriptDialogsEnabled:L | (Java) Script Dialoge anzeigen (default) false |
CbScriptEnabled:L | (Java) Script aktiv (default) false |
CbStatusBarEnabled:L | Statuszeile anzeigen (default) false |
CbUserAgent:C | User-Agent (default) Mozilla/4.0 (compatible) |
CbZoomControlEnabled:L | Vergrößern per STRG+Mausrad bzw. STRG++/STRG+- aktiv (default) false |
CbZoom:N | Aktuelle Vergrößerung als Fließkommazahl 0.01 bis 5 (default) 1 (entspricht 100%) |
CbAcceleratorKeysEnabled:L | Browser Tastaturkürzl aktiv (default) true |
CbAutofillEnabled:L | Speichern und automatisches Ausfüllen von Formularen und Inhalten (default) false |
CbDevToolsEnabled:L | Browser Developer Tools aktiv (default) false (nur wenn auch CbContextMenusEnabled aktiv) |
CbErrorPageEnabled:L | Standard Fehlerseite im Fehlerfall anzeigen (default) false |
CbHostObjectsAllowed:L | Aktuell nicht verwenden (default) false |
CbPasswordAutosaveEnabled:L | Automatisches speichern von Passwörten (default) false |
CbPinchZoomEnabled:L | Pinch to Zoom auf Geräten mit Touch(screen) Eingabe erlaubt (default) false |
CbSwipeNavigationEnabled:L | Wischgesten auf Geräten mit Touch(screen) Eingabe erlaubt (default) false |
CbWebMessageEnabled:L | Aktuell nicht verwenden (default) false |
CbDataFolder:C | Speicherort der Browserdaten (temp. Inhalte, Cookies etc) (Readonly) |
CbContextMenusEnabled:L | Rechtsklick Menü aktiv (default) false |
CbAllowExternalDrop:L | Drag&Drop von Externen Inhalten (z.B. Dateiupload) erlauben (default) false |
CbAllowDownloads:L | Datei Downloads erlauben (default) false |
CbLowMemoryMode:L | Arbeitsspeicher Verbrauch minimieren (kann dazu führen das mehr Inhalte auf Festplatte ausgelagert werden) (default) false |
Funktionen und Methoden
Funktionen und Methoden | Beschreibung |
---|---|
CbActivate() | Komponente Laden und Anzeigen |
CbShowHTML(cHTML:C) | Anzeige eines beliebigen HTML Inhalts Achtung: Maximale Größe des HTML 1,5 MB für größere Inhalte muss der Inhalt in eine temporäre Datei gespeichert und per CbGoToUrl('file:///C:/...') angezeigt werden, oder per Script nachgeladen werden. |
CbGoToUrl(cURL:C) | Aufruf und Anzeige einer beliebigen (externen) Webseite |
CbForward() | Im Verlauf nach vorne springen |
CbBack() | Im Verlauf zurück springen |
CbRefresh() | Aktuelle URL neu laden |
CbStop() | Laden der URL pausieren/abbrechen |
CbResume() | Pausiertes Laden fortsetzen |
CbAddCookie(oCookie:O) | Cookie hinzufügen (siehe TbeCbEdgeBrowserCookie) |
CbUpdateCookie(cUrl:C, oCookie:O) | Informationen/Einstellungen eines Cookies aktualisieren |
CbDeleteCookie(cCookieName:C, cDomain:C, cPath:C) | Cookie(s) löschen alle 3 Parameter leer = alle Cookies der Browsersitzung löschen cPath leer = alle Cookies zur angegebenen Adresse (Domain) löschen |
CbListCookies(cDomain:C):A | Alle Cookies innerhalb der Browser Sitzung zur einer Adresse (Domain) auflisten. Falls die Cookie Informationen nicht innerhalb 1000 msek. Ermittelt werden können wird der Vorgang abgebrochen. |
CbCookieByName(cCookieName:C, cDomain:C):O | Browser Cookie anhand Name und Adresse ermitteln (Rückgabe TbeCbEdgeBrowserCookie). Objekt kann dann für CbUpdateCookie verwendet werden. Bei vielfacher Verwendung sollten die Cookie Objekte falls sie im Codeblock nicht mehr benötigt werden zerstört werden, andernfalls werden diese erst durch das Beenden des Browsers zerstört. Falls die Cookie Informationen nicht innerhalb 1000 msek. Ermittelt werden können wird der Vorgang abgebrochen. |
CbExecuteScript(cScript:C) | Führt ein Java Script innerhalb der Browser Umgebung aus. Die Ausführung erfolgt asynchron. Ist die Ausführung erfolgreich abgeschlossen, dann wird der Event CbOnScriptExecutionCompletion ausgelöst und im Fehlerfall der Event CbOnException |
CbSendWebmessage(cMessage:C) | Schickt eine Nachricht an die Hostapplikation (be). Nur verfügbar wenn CbWebMessageEnabled aktiv. |
CbRegisterCustomProtocol(cProtocol:C, aAllowedOrigin:A) | Registriert zusätzlich zu http(s):// eigene erlaubte URL Protokolle (das Protokoll für den Standard be Protocol-Handler 'be://' muss nicht explizit registriert werden) cProtocol (ohne ://) z.B. becodeblock aAllowedOrigin Liste an erlaubten Quellen die das URL Protokoll aufrufen dürfen. z.B. {'*'} oder {'https://*.dontenwill.de'},{'https://*.businessexpress.de'} |
Verfügbare Ereignisse
Ereignis | Beschreibung |
---|---|
CbOnActivated | Ereignis wenn das Control zeugt und initialisiert ist. Kann z.B. genutzt werden um Cookies anzulegen Signatur: function(oSender:O) |
CbOnNewWindowRequested | Wenn ein neues Browser Fenster geöffnet werden soll, z.B. wenn der Benutzer auf einen Link klickt Signatur: function(oSender:O, cUrl:C, cName:C, lUserInitiated:L, lHandled:L) über lHandled kann definiert werden ob das Fenster geöffnet werden soll, oder ob sich das Codeblock Programm selbst darum z.B. Umleitung auf ShowBeWindow() |
CbOnNavigationStarting | Wenn eine neue URL aufgerufen wird Signatur: function(oSender:O, cUrl:C, lUserInitiated:L, lRedirected:L, lCancel:L) über lCancel kann der Aufruf der URL abgebrochen werden lRedirected gibt an ob z.B. durch den Server einen Umleitung durchgeführt wurde (z.B: von http auf https) |
CbOnNavigationCompleted | Wenn der Aufruf einer URL abgeschlossen ist Signatur function(oSender:O, lSucces:L, nWebError:N, nStatusCode:N) Mögliche Werte für nWebError: weUnknown = 0 |
CbOnZoomChanged | Wenn der Anzeige Vergrößerung per Tastatur, Mausrad oder CbZoom verändert wurde Signatur: function(oSender:O) |
CbOnException | Wenn innerhalb des Browser-Komponente ein Fehler auftritt Signatur: function(oException:O, lHandled:L) über lHandled kann überprüft werden ob der Fehler schon im Standard verarbeitet wurde bzw. muss im Codeblock auf True gesetzt werden wenn der Fehler im Codeblock behandelt wurde, andernfalls wird die Exception ausgelöst. |
CbOnDownloadStarting | Wenn ein Download gestartet wird (sie auch CbAllowDownloads) Signatur: function(oSender:O, oDownload:O, lCancel:L, lHandled:L) das Download Objekt ist vom Typ TbeCbEdgeBrowserDownload über lCancel kann der Download verhindert werden über lHandled kann das Standard Download Fenster unterdrückt werden |
CbOnScriptExecutionCompletion | Wenn ein Java Script erfolgreich per CbExecuteScipt() abgearbeitet wurde. Signatur: function(oSender:O, cResult:C) |
CbOnWebMessageReceived | Wenn eine Nachricht von der Hostapplikation (be) an die Browser Komponente geschickt wird. Nur verfügbar wenn CbWebMessageEnabled aktiv. Signatur: function(oSender:O, cSource:C, cMessage:C) |
Beispiel
Ausführliches Beispiel → siehe Browser Demo Source & Browser Demo F12 Formular
//******************************************************************************
// Beschreibung: TbeCBEdgeBrowser Beispiel 1:
// Anzeige von eigenen HTML Inhalten
//******************************************************************************
| oForm, oBrowser, cHTML |
//##############################################################################
//##############################################################################
// Initialisierung
//##############################################################################
//##############################################################################
StartSeq
startseq
// Form
oForm := CreateObject('TForm', 'Form'),
oBrowser := CreateObject('TbeCBEdgeBrowser', 'Browser', oForm, oForm),
oBrowser.Align := alClient,
oBrowser.CbAllowNewWindow := false,
oBrowser.CbActivate(),
cHTML := '<!DOCTYPE html>' + crlf +
'<html>' + crlf +
'<body>' + crlf +
'<h1>My First Heading</h1>' + crlf +
'<p>My first paragraph.</p>' + crlf +
'</body>' + crlf +
'</html>',
oBrowser.CbShowHTML(cHTML),
ShowModal(oForm),
always
DestroyObject(oForm),
stopseq,
OnError
MessageDlg(GetErrorText()),
StopSeq,
//==============================================================================
//==============================================================================
//==============================================================================
//==============================================================================
//==============================================================================
//==============================================================================
//******************************************************************************
// Beschreibung: TbeCBEdgeBrowser Beispiel 2:
// Anzeige von (externen) Webseiten
//******************************************************************************
| oForm, oBrowser |
//##############################################################################
//##############################################################################
// Initialisierung
//##############################################################################
//##############################################################################
function OnBrowserActivated(oSender:O)
writeln('OnBrowserActivated'),
oBrowser.CbUserAgent := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36',
oBrowser.CbGoToUrl('https://shared2.dev.businessexpress.cloud/'),
end,
function OnBrowserNavigationStarting(oSender:O, cUrl:C, lUserInitiated:L, lRedirected:L, lCancel:L)
writeln('OnBrowserNavigationStarting', cUrl),
end,
function OnBrowserNavigationCompleted(oSender:O, lSucces:L, nWebError:N, nStatusCode:N)
writeln('OnBrowserNavigationCompleted'),
end,
StartSeq
startseq
// Form
oForm := CreateObject('TForm', 'Form'),
oForm.Width := 1000,
oForm.Height := 1000,
oBrowser := CreateObject('TbeCBEdgeBrowser', 'Browser', oForm, oForm),
oBrowser.Align := alClient,
oBrowser.CbAllowNewWindow := false,
oBrowser.CbScriptDialogsEnabled := true,
oBrowser.CbScriptEnabled := true,
AssignEvent(oBrowser, 'CbOnActivated', 'OnBrowserActivated'),
AssignEvent(oBrowser, 'CbOnNavigationStarting', 'OnBrowserNavigationStarting'),
AssignEvent(oBrowser, 'CbOnNavigationCompleted', 'OnBrowserNavigationCompleted'),
ShowModal(oForm),
always
DestroyObject(oForm),
stopseq,
OnError
MessageDlg(GetErrorText()),
StopSeq,