AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Twebbrowser, edge verwenden wenn vorhanden greift nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Twebbrowser, edge verwenden wenn vorhanden greift nicht

Ein Thema von fisipjm · begonnen am 2. Mär 2022 · letzter Beitrag vom 4. Apr 2022
Antwort Antwort
fisipjm

Registriert seit: 28. Okt 2013
251 Beiträge
 
#1

Twebbrowser, edge verwenden wenn vorhanden greift nicht

  Alt 2. Mär 2022, 07:53
Moin,

da die meisten Delphi online Seiten ja irgendwie immer noch down sind, mal wieder eine kleien Frage hier in die Runde.

Ich habe eine VCL Anwendung die als DLL eine Twebbrowser Komponente in einer anderen Anwendung bereit stellt. In den Einstellungen habe ich ausgewählt dass er Edge benutzen soll wenn er verfügbar ist.
Das System auf dem die Anwednung läuft ist ein Win 2016 Terminalserver. Edge Browser ist installiert. Die WebView2Loader.dll liegt im gleichen Verzeichniss wie die Anwednung. Allerdings wird immer nur der Internetexplorer verwendet. Hab ich irgendwas vergessen?

Auf meiner Dev Umgebung funktionierts, aber da hab ich auch schreibzugriff auf das Verzeichniss in dem die Anwendung liegt, es wird bei mir ein Ordner mit dem Namen der Exe und ".WebView2" angelegt. Das wird auf dem Terminalserver also nicht funktionieren und müsst wahrscheinlich in das jeweilige Temp verzeichniss des Benutzers. Bin ich da auf dem richtigen Weg? Habt ihr schonmal Erfahrungen damit gemacht?

Grüße
PJM
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Twebbrowser, edge verwenden wenn vorhanden greift nicht

  Alt 2. Mär 2022, 09:07
Die Installation des "normalen" Edge reicht nicht.
MS ist auf die "glorreiche" Idee gekommen, das noch parallel (der gleiche SW-Stand) ein "embeddable" Version des Edge installiert werden muss.
Das Edge-Control (bzw. WebView2Loader.dll) aus der normalen Installation kann nicht genutzt werden.

Alternativ lieferst du eine Edge-Version als "Beilage" zu deiner Anwendung in einem Unterverzeichnis mit und verweist auf dieses.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von GPRSNerd
GPRSNerd

Registriert seit: 30. Dez 2004
Ort: Ruhrpott
239 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Twebbrowser, edge verwenden wenn vorhanden greift nicht

  Alt 2. Mär 2022, 11:01
Hi, ich setze in einer meiner Apps direkt die Webbrowser-Komponente TEdgeBrowser für den Edge ein und konfiguriere den Cache-Pfad beim Start:
ebWetter.UserDataFolder := IncludeTrailingPathDelimiter(TPath.GetTempPath) + appProductName;
Stefan
  Mit Zitat antworten Zitat
fisipjm

Registriert seit: 28. Okt 2013
251 Beiträge
 
#4

AW: Twebbrowser, edge verwenden wenn vorhanden greift nicht

  Alt 3. Mär 2022, 06:51
Die Installation des "normalen" Edge reicht nicht.
MS ist auf die "glorreiche" Idee gekommen, das noch parallel (der gleiche SW-Stand) ein "embeddable" Version des Edge installiert werden muss.
Das Edge-Control (bzw. WebView2Loader.dll) aus der normalen Installation kann nicht genutzt werden.

Alternativ lieferst du eine Edge-Version als "Beilage" zu deiner Anwendung in einem Unterverzeichnis mit und verweist auf dieses.
Okay, den Edge Embedded lass ich jetzt mal nachinstallieren. Hast du zufällig noch einen Tipp wie ich das Speicherverhalten der WebView2Loader.dll verändern kann. Ich befürchte da wird der nächste Stolperstein liegen.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Twebbrowser, edge verwenden wenn vorhanden greift nicht

  Alt 3. Mär 2022, 10:00
Okay, den Edge Embedded lass ich jetzt mal nachinstallieren. Hast du zufällig noch einen Tipp wie ich das Speicherverhalten der WebView2Loader.dll verändern kann. Ich befürchte da wird der nächste Stolperstein liegen.
Das da -> https://www.delphipraxis.net/1502854-post3.html
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
fisipjm

Registriert seit: 28. Okt 2013
251 Beiträge
 
#6

AW: Twebbrowser, edge verwenden wenn vorhanden greift nicht

  Alt 3. Mär 2022, 11:43
Okay, den Edge Embedded lass ich jetzt mal nachinstallieren. Hast du zufällig noch einen Tipp wie ich das Speicherverhalten der WebView2Loader.dll verändern kann. Ich befürchte da wird der nächste Stolperstein liegen.
Das da -> https://www.delphipraxis.net/1502854-post3.html
Wie der Kollege ja schon gesagt hat, verwendet er den TedgeBrowser. Der hat diese Funktion. Beim TWebBrowser kann ich es nicht finden. Oder bin ich Blind?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Twebbrowser, edge verwenden wenn vorhanden greift nicht

  Alt 3. Mär 2022, 17:08
Wie der Kollege ja schon gesagt hat, verwendet er den TedgeBrowser. Der hat diese Funktion. Beim TWebBrowser kann ich es nicht finden. Oder bin ich Blind?
Keine Ahnung. Wir nutzen nur TEdgeBrowser (bzw. TWebbrowser nur im IE-Modus)
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
672 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Twebbrowser, edge verwenden wenn vorhanden greift nicht

  Alt 4. Mär 2022, 10:43
Okay, den Edge Embedded lass ich jetzt mal nachinstallieren. Hast du zufällig noch einen Tipp wie ich das Speicherverhalten der WebView2Loader.dll verändern kann. Ich befürchte da wird der nächste Stolperstein liegen.
Das da -> https://www.delphipraxis.net/1502854-post3.html
Wie der Kollege ja schon gesagt hat, verwendet er den TedgeBrowser. Der hat diese Funktion. Beim TWebBrowser kann ich es nicht finden. Oder bin ich Blind?
Vielleicht hilft Dir das hier: https://en.delphipraxis.net/topic/59...&comment=51909
Peter Below
  Mit Zitat antworten Zitat
Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
74 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Twebbrowser, edge verwenden wenn vorhanden greift nicht

  Alt 8. Mär 2022, 08:43
Es gibt eine einfachere Möglichkeit, das Benutzerdatenverzeichnis zu setzen:
Code:
 SetEnvironmentVariable('WEBVIEW2_USER_DATA_FOLDER', PWideChar(EdgeUserDataFolder));
Zum Beispiel im Initialization-Teil der Unit oder im Projektquelltext vor dem Erstellen des Forms.

Die Variante mit dem Zugriff auf die geschützte Funktion "GetEdgeInterface" hat neben dem etwas unschönen "Hack" den Nachteil, dass der Browser ggf. schon initialisiert wurde und versucht hat, das Datenverzeichnis im Programmverzeichnis anzulegen. Das dann notwendige erneute Initialisieren des Webviews würde mich auch stören.

Mit dem Setzen von Environment-Variablen kann man auch weitere Parameter beeinflussen.
Als Beispiel zusätzliche Parameter, die man auch bei Chrome per Kommandozeile übergeben kann:
Code:
SetEnvironmentVariable('WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS', '--allow-file-access-from-files');
Damit wird z.B. das Lesen lokaler Dateien erlaubt, wenn man lokale HTML-Dateien anzeigt (und auch nur dann sollte man das aktivieren)

Es wäre natürlich schöner, wenn Embarcadero daran gedacht hätte, das Initialisieren des Webviews in einer abgeleiteten Klasse überschreibbar zu machen, aber mit den Environment-Variablen kann man sich zumindest ohne weitere Hacks behelfen.
  Mit Zitat antworten Zitat
fisipjm

Registriert seit: 28. Okt 2013
251 Beiträge
 
#10

AW: Twebbrowser, edge verwenden wenn vorhanden greift nicht

  Alt 4. Apr 2022, 14:59
Es gibt eine einfachere Möglichkeit, das Benutzerdatenverzeichnis zu setzen:
Code:
 SetEnvironmentVariable('WEBVIEW2_USER_DATA_FOLDER', PWideChar(EdgeUserDataFolder));
Zum Beispiel im Initialization-Teil der Unit oder im Projektquelltext vor dem Erstellen des Forms.
Habs in den Initialization Teil gepackt und dafür ioutils.tpath.GetCachePath verwendet, funktioniert wunderbar.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz