Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   TEdgeBrowser und inaktives WLAN/Flugmodus (https://www.delphipraxis.net/209409-tedgebrowser-und-inaktives-wlan-flugmodus.html)

Bernhard Geyer 3. Dez 2021 08:26

TEdgeBrowser und inaktives WLAN/Flugmodus
 
Initial dachte ich das unser Anwendung nicht funkioniert weil kein aktiver/gültiger TCP/IP-Stack vorliegt.

Dazu gab es dieses Ticket:
https://www.delphipraxis.net/208306-...ohne-wlan.html

Jetzt zeigte sich das nicht der TCP/IP-Stack das Problem ist, sondern der Edge-Browser (D10.4 und EdgeBrowser-Komponente).
Dieser läuft nicht richtig durch, um die Webseite des lokalen Webserver zu laden.
Mache ich eine IE oder Edge-Fenster auf und öffne dort die http://localhost...-URL läd die Anwendung Wunderbar.

Fallback auf IE (TWebbrowser) ist keine alternative, da
- Unbefriedigender/Fehlerhafter HTML5-Support des IE-Controls
- Schlechte Performance von JS
- Abkündigung des IE von MS für 2022. Und lieber keine Altlasten haben, falls MS auch die nutzung in eigenen Anwendungen kaputt macht durch Updates

Also muss ich beim Edge-Browser bleiben.
Nutzung von CEF4 (Chromium direkt) nicht möglich da
- Dort z.B. kein neuen Video-Codes direkt dabei sind
- Auch dieser (in alter Version der Anwendung) das gleiche Problem mit deaktivierten WLAN/Flugmodus zeigte.


Also ist die Frage:
- Was könnte die Ursache sein?
- Wie könnte man das am besten umgehen?

Bernhard Geyer 6. Dez 2021 10:29

AW: TEdgeBrowser und inaktives WLAN/Flugmodus
 
Ursache gefunden:
Der Edge/Chromium-Browser läd einfach nicht weiter.
Nach einem NavigationCompleted-Event kommt nix mehr :-(

Wie bekomme ich jetzt raus das der Edge/Chromium-Browser noch was macht?

Der schöne Günther 10. Dez 2021 07:59

AW: TEdgeBrowser und inaktives WLAN/Flugmodus
 
Ich kann das ehrlich gesagt nicht nachstellen - Sowohl ein
Delphi-Quellcode:
TWebBrowser
mit Edge-Engine als auch der
Delphi-Quellcode:
TEdgeBrowser
laden URLs von
Code:
http://localhost
wunderbar.

Ich habe in meiner VM jegliche Verbindungen getrennt.

Bernhard Geyer 10. Dez 2021 10:36

AW: TEdgeBrowser und inaktives WLAN/Flugmodus
 
Oh, ich glaube ich habe beim Post eine Info vergessen.

Ich starte die Abfrage und die Gegenstelle ist u.U. noch nicht vollständig gestartet/Verfügbar.
Mit verfügbaren WLAN sorgt die Edge-Komponenten das ein evtl. erster geklapptes Laden automatisch wiederholt wird.

Ohne WLAN/Flugzeugmodus scheint es für mich so zu sein, das nach ersten Versuch eines Ladens kein weiteres Laden versucht wird.
Ein Event das mich auf ein "OnLoadFailed" hinweist, habe ich nicht der TEdgeBrowser-Komponente gefunden.

Aktuell starte ich einen Timer. Wenn 5 Sekunden nach dem Navigate-Event nicht das entsprechende Lade-Event kommt, wird einfach nochmal die URL
aufgerufen. Klappt, ist aber halt alles andere als Ideal (evtl. unnötige 4,5s Wartezeit, ...)

Der schöne Günther 10. Dez 2021 11:09

AW: TEdgeBrowser und inaktives WLAN/Flugmodus
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1498892)
Ich starte die Abfrage und die Gegenstelle ist u.U. noch nicht vollständig gestartet/Verfügbar.

Das ist der Teil den man in den Griff bekommen muss. Mach doch einen Ping oder selbst einen Indy Http-Client der einfach nur schaut, ob er hier eine Antwort bekommt. Sobald das der Fall ist kannst du ja loslegen.

Hatte gestern einen ähnlichen Fall - Habe den WebView2 bereits auf eine PDF-Datei losgelassen die noch geschrieben wurde. Da muss man natürlich auch erst warten bis die Datei fertig und zu ist.

Bernhard Geyer 10. Dez 2021 14:08

AW: TEdgeBrowser und inaktives WLAN/Flugmodus
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1498895)
Das ist der Teil den man in den Griff bekommen muss. Mach doch einen Ping oder selbst einen Indy Http-Client der einfach nur schaut, ob er hier eine Antwort bekommt. Sobald das der Fall ist kannst du ja loslegen.

Manchmal sieht man den Wald vor lauter Bäumen nicht.
Gute Idee :thumb:
Sollte machbar sein. http-Auruf und schauen ob was zurück kommt. Dann sollte der Server schonmal soweit hochgefahren sein das er seinen TCP/IP-Stack initalisiert hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:06 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