Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Webview2 für D2007 (https://www.delphipraxis.net/209780-webview2-fuer-d2007.html)

himitsu 8. Jun 2022 08:37

AW: Webview2 für D2007
 
https://docs.microsoft.com/en-us/pre...-apis/jj710218
res protocoll -> res://sFile/sID bzw. res://sFile/sType/sID

Mavarik 8. Jun 2022 08:59

AW: Webview2 für D2007
 
Zitat:

Zitat von Gruber_Hans_12345 (Beitrag 1506993)
Zitat:

Zitat von Mavarik (Beitrag 1506727)
Gerne, aber welche Info brauchst Du?
Mavarik

Wo hast du die Schnittstelle angesetzt? also schleust du alle Events vom TEdgeBrowser durch?
Zum erzeugen vom TEdgeBrowser gibst vermutlich nur einen Handel dann an die DLL an oder?

Eine Frage noch an alle - ist es möglich die ganzen Daten sprich Files aus einer Ressource zu laden?
Die indes.html, also das File das ich anzeigen will, ist ja kein PRoblem, das lade ich schon aus dem Speicher, aber ich würde gerne dazu auch alle CSS + JS auch die per link drinnen sind aus dem Speicher laden können.
Habe aber kein Event gefunden das man dazu hernehmen könnte?

Ich hab das ganze Fenster in einer XE 11.1 DLL

Gruber_Hans_12345 8. Jun 2022 10:58

AW: Webview2 für D2007
 
hmmm ein kleines Problem habe ich noch.

Ich habe zwei ansätze wie ich die hauptseite (index.html) reinbekomme.

Folgende geht zwar sehr schnell aber dafür bekomme ich bei gewissen sachen einen CORS verletzug.
Delphi-Quellcode:
  source := TStringList.Create;
  source.LoadFromFile('source\index.html');
  EdgeBrowser1.NavigateToString(source.TExt);
  source.Free;
wenn ich mit folgenden das mache

Delphi-Quellcode:
  EdgeBrowser1.AddWebResourceRequestedFilter('*', COREWEBVIEW2_WEB_RESOURCE_CONTEXT_ALL);
  EdgeBrowser1.Navigate('https://app/source/index.html');
Dann funktionieren zwar die AJAX aufrufe (keine CORS Verletzung mehr) aber dafür habe ich bei der ersten Seite immer ein Delay von ca 2 Sekunden (die ich beim ersten Code nicht habe)

Ok habs geschafft, konnte das CORS umgehben, indem ich die Access-Contro-Allow-* Header setze beim schicken nun funktioniert es mit dem NavigateToString auch

Gruber_Hans_12345 8. Jun 2022 18:27

AW: Webview2 für D2007
 
hmmm eine Frage wegen dem IStream noch

Im Moment mach ich das so:
Delphi-Quellcode:
iStr   := TStreamAdapter.Create(fileSt, soOwned) as IStream;
      EdgeBrowser1.EnvironmentInterface.CreateWebResourceResponse(iStr, 200, 'OK', PWideChar(
          'content-type: '+contentTyp+#13#10
          ), response);
      Args.ArgsInterface.Set_Response(response);
      iStr := nil;
Dadruch wird der TFileStream (fileSt) und der TStreamAdapter zwar freigegeben, aber erst beim schließen des Programmes, bzw wenn ich beim TEdgeBrowser einen reload oder so mache.
Ansonsten sind die 7 TFileStream + TStreamAdapter die da drinnen erzeugt werden permanent in use.

Ist ja nicht sinn und zweck oder?

himitsu 8. Jun 2022 20:20

AW: Webview2 für D2007
 
Zitat:

Delphi-Quellcode:
LoadFromFile('source\...

NEIN.

Niemals mit relativen Pfaden arbeiten.

Delphi-Quellcode:
ExtractFilePath(Application.ExeName)
oder
Delphi-Quellcode:
ExtractFilePath(ParamStr(0))
und Pfade am Besten nicht manuell, sondern mit Delphi-Referenz durchsuchenTPath.Combine zusammenklöppeln.


Einfachers Beispiel:
man nehme einen TFileOpenDialog oder SaveDialog
und freue sich, dass der standardmäßig das Arbeitsverzeichnis ändert.

Oder das Programm wird aus einem anderen Pfad gestartet und das Arbeitsverzeichnis ist schon von Beginn an nicht das Gleiche, wie das Programmverzeichnis.

Gruber_Hans_12345 10. Jun 2022 06:35

AW: Webview2 für D2007
 
Ja danke - aber das war nur zum testen eine Version, ich lade alle Files aus den Resourcen raus.

Nur das mit dem IStream, die er nur irgendwann mal freigibt bleibt trotzdem noch


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 Uhr.
Seite 2 von 2     12   

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