Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi Gibt es Crossplatform Methoden für die Erstellung von temporären Dateien? (https://www.delphipraxis.net/188614-gibt-es-crossplatform-methoden-fuer-die-erstellung-von-temporaeren-dateien.html)

Sherlock 21. Mär 2016 15:40

Gibt es Crossplatform Methoden für die Erstellung von temporären Dateien?
 
Ich lese von einem Webservice ein PDF aus und möchte das auf einem "beliebigen" Device dann öffnen/anzeigen. Derzeit habe ich die Basiscs in einer reinen Windowsanwendung umgesetzt, zur Probe, ob die Kommunikation mit dem Service klappt. Aber ich möchte das demnächst auch für MacOS, iOS und Android können. Meine derzeitige Lösung besteht darin die PDF-Datei Base64 encodiert zu übertragen, und auf empfangender Seite, diese dann temporär zu speichern und per ShellExecute "automatisch" mit dem assoziierten Programm zu öffnen. Delphi gibt einem da wohl keine Cross-Platform Libs mit auf dem Weg, oder? Also zum erzeugen einer temporären Datei oder auch zum öffnen der Datei mit dem korrekten Viewer. Oder gibts da etwas, das ich übersehen habe?

Sherlock

himitsu 21. Mär 2016 15:43

AW: Gibt es Crossplatform Methoden für die Erstellung von temporären Dateien?
 
Delphi-Referenz durchsuchenTPath.GetTempFileName TPath.GetTempPath TPath.GetRandomFileName

Nur für "ShellExecute" gibt es halt nix Allgemeingültiges.
Bin ja eh grade dabei was zu machen ... mit bissl Hilfe, könnte man auch auch gleich "richtig" Machen, für Alles. :stupid:
http://www.delphipraxis.net/188607-i...ml#post1333420

bra 21. Mär 2016 17:19

AW: Gibt es Crossplatform Methoden für die Erstellung von temporären Dateien?
 
Hier gibt es keine Standard-Routinen, weil das Verhalten auf den mobilen Systemen auch ganz anders als bei Windows ist. Ein ShellExecute o.ä. gibt es dort nicht. Bei Android kann man die Daten an eine andere App "weiterreichen" oder teilen und das auf x verschiedenen Wegen, bei iOS gibt es meines Wissens nur das Teilen.

Eventuell geht das auch über das ShareSheetAction? Wir hatten das am Anfang mit XE4? mal getestet und wieder verworfen, weil unbrauchbar für unsere Zwecke.

Sherlock 22. Mär 2016 08:19

AW: Gibt es Crossplatform Methoden für die Erstellung von temporären Dateien?
 
Danke erst mal. Ich wußte doch, daß es für eine der beiden Fragestellungen etwas gab. Aber ich glaube ich löse es insgesamt etwas anders. Da der Webservice auch von mir ist, werde ich wohl einfach einen Hyperlink zum PDF liefern, statt das PDF selbst. Dann muss ich nur noch eine URL öffnen, und das ist IIRC plattformunabhängig machbar, hoffe ich.

Sherlock

RWarnecke 22. Mär 2016 16:32

AW: Gibt es Crossplatform Methoden für die Erstellung von temporären Dateien?
 
Zitat:

Zitat von bra (Beitrag 1333497)
..., bei iOS gibt es meines Wissens nur das Teilen.

Es gibt einmal die Öffnen mit... Funktion und Du kannst es über die ShareSheetAction machen. Unter dem Link findest Du es, wie es in Objective-C gemacht wird, vielleicht kannst Du das ja irgendwie übersetzen nach Delphi.

himitsu 23. Mär 2016 00:22

AW: Gibt es Crossplatform Methoden für die Erstellung von temporären Dateien?
 
Zitat:

Zitat von bra (Beitrag 1333497)
Hier gibt es keine Standard-Routinen, weil das Verhalten auf den mobilen Systemen auch ganz anders als bei Windows ist. Ein ShellExecute o.ä. gibt es dort nicht.

Was aber nicht dagegen spricht eine Funktion "OpenFile" zu schreiben, die je nach System etwas macht, womit die Datei dan geöffnet wird, egl ob "automatisch, wie im Windows, oder mit "Öffnen mit..." oder sonstwie.

DeddyH 23. Mär 2016 07:12

AW: Gibt es Crossplatform Methoden für die Erstellung von temporären Dateien?
 
Genauso habe ich es auch gemacht, dann hat man auch das ganze IFDEF-Gedöns nur an einer einzigen Stelle, wo es nicht stört.

Rollo62 24. Mär 2016 07:47

AW: Gibt es Crossplatform Methoden für die Erstellung von temporären Dateien?
 
Unter Macos sollte es etwas ähnliches geben.

Rollo


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz