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.

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

CbDownloadFolder:C

Globale Vorgabe für das Ziel von Downloads

CbColorScheme:C

Farbschema für Dialoge und Inhalte innerhalb des Browsers (Druckdialog, Downloaddialog, CSS Farbschema) (default) bebccsLight

bebccsAuto, bebccsLight, bebccsDark

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'}

CbOpenDevTools()

Browser DevTools anzeigen (nur als Developer möglich)

CbShowPrintDialog(aUseSystemDialog:L)

Browser Duck-Dialog anzeigen

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

CbOnDownloadInterrupted

Wenn ein gestarteter Download abgebrochen (wurde siehe TbeCbEdgeBrowserDownload.InterruptReason)

Signatur: function(oSender:O, oDownload:O)

CbOnDownloadFinished

Wenn ein gestarteter Download fertig ist

Signatur: identisch zu CbOnDownloadInterrupted

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.