![]() |
PDF anzeigen in Delphi FMX 10.3 für Android
Moin,
ich bin auf ein neues Problem mit 10.3 gestoßen, nämlich, dass das PDF öffnen nicht mehr so funktioniert wie in 10.2, soweit so gut. Ich habe mich bereits informiert und weiß, dass das jetzt über den Provider läuft, anstatt "file://" nun "content://" stehen muss etc, ist meines Wissens auch alles korrekt eingestellt. Dummerweise sieht das bei mir derzeit so aus, dass beim Ausführen des Intents, der die PDF öffnet, zwar das PDF-Programm aufgeht, aber leer ist, ohne dass irgendein Fehler aufgetreten ist. Öffne ich die PDF normal außerhalb der App, wird diese ganz normal angezeigt. Die PDF liegt im öffentlichen Dokumentenverzeichnis. Mein derzeitiges Vorgehen im Quelltext sieht so aus:
Code:
Wenn jemand das PDF-Anzeigen in 10.3 schon umgesetzt hat und seine Erkenntnisse hier mit mir teilen könnte, wäre ich sehr dankbar.
Var Intent : JIntent;
Uri : Androidapi.JNI.Net.Jnet_Uri; Begin Uri := Androidapi.JNI.Net.TJnet_Uri.JavaClass.parse(StringToJString('content://' + DateiName)); Intent := TJIntent.Create; Intent.SetAction(TJIntent.JavaClass.ACTION_VIEW); Intent.SetDataAndType(Uri, StringToJString('application/pdf')); Intent.setFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION); Intent.setFlags(TJIntent.JavaClass.FLAG_GRANT_WRITE_URI_PERMISSION); SharedActivity.startActivity(intent); End; Ein unglaublich toller Bonus wäre, wenn jemand wüsste, ob es inzwischen möglich ist, eine PDF auch auf Android in der Webbrowser-Komponente anzuzeigen, so wie das auch auf IOS läuft. |
AW: PDF anzeigen in Delphi FMX 10.3 für Android
Mein funktionierender Code sieht recht ähnlich aus zu deinem, aber am Ende geht es auseinander.
Helpfile ist einfach nur der Pfad zum pdf-File.
Delphi-Quellcode:
uses Androidapi.JNI.Os, Androidapi.Helpers, Androidapi.JNI.GraphicsContentViewText;
var fileuri: JParcelable; Intent: JIntent; begin fileuri := JParcelable(TJNet_Uri.JavaClass.fromFile(TJFile.JavaClass.init(StringToJString(helpFile)))); Intent := TJIntent.Create; Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); intent.setType(StringToJString('application/pdf')); Intent.putExtra(TJIntent.JavaClass.EXTRA_STREAM, fileuri); TAndroidHelper.Activity.StartActivity(Intent); end; |
AW: PDF anzeigen in Delphi FMX 10.3 für Android
Funktioniert der Code auf 10.3?
Bei mir bekomme ich dann im Anzeigeprogramm die Meldung "Datei kann nicht geöffnet werden". Außerhalb der App manuell öffnen geht aber. Und nur um sicher zu gehen.. In HelpFile steht nur der eigentliche Pfad, nicht irgendwie "content://" oder sowas davor? |
AW: PDF anzeigen in Delphi FMX 10.3 für Android
Sorry, zu ungenau deine Fehlerbeschreibung gelesen.
Mit 10.3 und Android stehe ich noch auf Kriegsfuß, weil dort der TMediaPlayer nicht gescheit funktioniert. Ich habe es jetzt aber mal auch dort ausprobiert und Du hast recht, es geht nicht mehr, in keiner Variante. Dann werde ich mal interessiert beobachten, ob hier jemand anderes des Rätsels Lösung weiß. |
AW: PDF anzeigen in Delphi FMX 10.3 für Android
Jo, ich bin deswegen, wie man im anderen Thread sehen kann, auf die Winsoft-Komponente PDFium zur PDF-Anzeige umgestiegen.
Hat auch den Vorteil, dass ich die PDF damit in der App selbst anstatt in einem externen Programm anzeigen kann. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:20 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