Hallo allerseits,
hat jemand eine Idee, wie man unter Linux eine Datei (z.B. PDF) mit dem jeweiligen Default-Viewer aufrufen kann?
Bisher funktioniert dies bei mir schon mal unter Windows, Android (hier beschränkt in untenstehendem Code auf PDF) und MacOS:
Delphi-Quellcode:
procedure TicTrainerF.displayPDFFileInDefaultViewer(filename:String);
{$IF DEFINED(ANDROID)}
var fileuri: JParcelable;
Intent: JIntent;
{$ENDIF}
{$IFDEF MACOS}
var Workspace: NSWorkspace;
{$ENDIF}
begin
{$IFDEF MSWINDOWS}
ShellExecute(0,'open',pchar(filename),nil,nil,SW_shownormal);
{$ENDIF}
{$IFDEF ANDROID}
fileuri := JParcelable(TJNet_Uri.JavaClass.fromFile(TJFile.JavaClass.init(StringToJString(filename))));
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);
{$ENDIF}
{$IFDEF MACOS}
Workspace := TNSWorkspace.Create;
Workspace.openFile(NSSTR(filename));
{$ENDIF}
{$IFDEF LINUX}
//todo
{$ENDIF}
end;
Grüße, Philipp