Hi i use this code,
in ios with safari works good, the only issue is to remember to disable "block pop-ups" in the safari settings.
uses IDCoder, IDCoderMime;
var
MStream:TBytesStream;
NomeFile:string;
PdfAnsi:AnsiString;
Encoder: TIdEncoderMIME;
Str:String;
begin
QTemp.Close;
QTemp.SQL.Clear;
QTemp.SQL.Add('select f.file_Stream,f.name,v.DocNumber,v.DocDate from v_Blob_Fatture Where f.stream_id='''+idBlob+'''');
QTemp.Open;
MStream:=TBytesStream.Create;
TBlobField(Qtemp.FieldByName('File_Stream')).SaveToStream(MStream);
NomeFile:='Fattura '+QTemp.FieldByName('DocNumber').AsString+' del '+StringReplace(QTemp.FieldByName('DocDate').AsString,'/','_',[rfReplaceAll])+'.pdf';
if (upiPhone in UniSession.UniPlatform) or (upiPad in UniSession.UniPlatform) then Begin
PdfAnsi:= TIdEncoderMIME.EncodeBytes(TIdBytes(MStream.Bytes));
Str:='var base64EncodedPdf="'+PdfAnsi+'";';
Str:=Str+'window.open("data:application/pdf;base64," +base64EncodedPdf);';
UniSession.AddJS(Str);
End else Begin
UniSession.SendStream(MStream,NomeFile);
End;
MStream.Free;
QTemp.Close;
End;
end;