Skip to main content
Skip table of contents

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.

EigenschaftBeschreibung

CbAllowNewWindow:L

true = Links innerhalb von Webseiten können in einem neuen (externen) Fenster geöffnet werden (default) false
CbScriptDialogsEnabled:LAnzeige von Standard JavaScript Dialogen z.B. Alert('Test') (default) false
CbScriptEnabled:LAusführung von JavaScript aktiv (default) false
CbUserAgent:CUser Agent der bei Anfragen übermittelt wird (default) Mozilla/4.0 (compatible)
CbCurrentUrl:CAktuelle URL die angezeigt/aufgerufen wird (Readonly)
CbCanGoBack:LKann im Verlauf zurück gesprungen werden (Readonly)
CbCanGoForward:LKann im Verlauf vorwärts gesprungen werden (Readonly)
CbMuted:LAudio Stummschaltung (default) true
CbScriptDialogsEnabled:L  (Java) Script Dialoge anzeigen (default) false
CbScriptEnabled:L(Java) Script aktiv (default) false
CbStatusBarEnabled:LStatuszeile anzeigen (default) false
CbUserAgent:CUser-Agent (default) Mozilla/4.0 (compatible)
CbZoomControlEnabled:LVergrößern per STRG+Mausrad bzw. STRG++/STRG+- aktiv (default) false
CbZoom:NAktuelle Vergrößerung als Fließkommazahl 0.01 bis 5 (default) 1 (entspricht 100%)
CbAcceleratorKeysEnabled:LBrowser Tastaturkürzl aktiv (default) true
CbAutofillEnabled:LSpeichern und automatisches Ausfüllen von Formularen und Inhalten (default) false
CbDevToolsEnabled:LBrowser Developer Tools aktiv (default) false (nur wenn auch CbContextMenusEnabled aktiv)
CbErrorPageEnabled:LStandard Fehlerseite im Fehlerfall anzeigen (default) false
CbHostObjectsAllowed:LAktuell nicht verwenden (default) false
CbPasswordAutosaveEnabled:LAutomatisches speichern von Passwörten (default) false
CbPinchZoomEnabled:LPinch to Zoom auf Geräten mit Touch(screen) Eingabe erlaubt (default) false
CbSwipeNavigationEnabled:LWischgesten auf Geräten mit Touch(screen) Eingabe erlaubt (default) false
CbWebMessageEnabled:LAktuell nicht verwenden (default) false
CbDataFolder:CSpeicherort der Browserdaten (temp. Inhalte, Cookies etc) (Readonly)
CbContextMenusEnabled:LRechtsklick Menü aktiv (default) false
CbAllowExternalDrop:LDrag&Drop von Externen Inhalten (z.B. Dateiupload) erlauben (default) false
CbAllowDownloads:L

Datei Downloads erlauben (default) false

CbLowMemoryMode:LArbeitsspeicher Verbrauch minimieren (kann dazu führen das mehr Inhalte auf Festplatte ausgelagert werden) (default) false

Funktionen und Methoden

Funktionen und MethodenBeschreibung

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
weCertificateCommonNameIncorrect = 1
weCertificateExpired = 2
weClientCertificateError = 3
weCertificateRevoked = 4
weCertificateInvalid = 5
weServerUnreachable = 6
weTimeout = 7
weHttpInvalidResponse = 8
weConnectionAborted = 9
weConnectionReset = 10
weDisconnected = 11
weCannotConnect = 12
weHostNameNotResolved = 13
weOperationCanceled = 14
weRedirectFailed = 15
weUnexpectedError = 16
weCredentialsRequired = 17
weProxyAuthenticationRequired = 18

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

CODE
//******************************************************************************
// 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,
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.