bossalex

Пользователи
  • Публикаций

    7
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

bossalex стал победителем дня 30 сентября 2017

bossalex имел наиболее популярный контент!

Информация о bossalex

  • Звание
    Новичок

Посетители профиля

273 просмотра профиля
  1. Delphi 10.1 FMX android получаю данные с сервера в rest закодирован base64 хранится pdf, нужно его раскодировать и сохранить на устройстве - далее отобразить пользователю Пример ответа сервера: { "code": 200, "body": { "finishFlag": true, "instanceId": "c9d0328a-6234-46d9-bc3b-d8adef9a0a71", "nextStep": { "pdf": "JVBERi0xL....PRg0K", -- pdf в base64 (он большой, для примера обрезал) "sort_order": 10, "is_not_prepr": false, "stepType": "A$FS_PRINT", "clientStep": true } }, Как отобразит вроде пример есть через intent (я это делал только через THttp скачивал и через установленный с плеймаркет просмотрщиком PDF просматривал ) {$IFDEF ANDROID} Uses Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers, Androidapi.JNI.JavaTypes, Androidapi.JNI.Net; {$ENDIF} procedure btnPdfClick(Sender: TObject); var fName : String; {$IFDEF ANDROID} Intent : JIntent; URI : Jnet_Uri; {$ENDIF} begin fName := TPath.GetSharedDownloadsPath + PathDelim + 'test.pdf'; {$IFDEF ANDROID} URI := TJnet_Uri.JavaClass.parse(StringToJString('file:///' + fName)); intent := TJIntent.Create; intent.setAction(TJIntent.JavaClass.ACTION_VIEW); intent.setDataAndType(URI,StringToJString('application/pdf')); SharedActivity.startActivity(intent); {$ENDIF} end;
  2. Кто знает как яндекс почту прикрутить к indy с ssl под дектоп работает, под андроид раньше работало сейчас оред что в отладке при коннекте SMTP не загружена библиотека SSL ранше использовал связку tidSMTP+tidMessage+IdSSLIOHandlerSocketOpenSSL c 465 портом Этото код работает в десктопе на яндексе под win рабоатает со внешними библиотекеми SSL типа libeay32.dll ssleay32dll Function TFormOFORMLENIE.mail(email:STRING):Boolean; var email:String; begin try Smtp.AuthType:=satDefault; SMTP.ReadTimeout:=10000; SMTP.Host := 'smtp.yandex.ru'; SMTP.Port := 465; SMTP.Username :=login; SMTP.Password :=pass; SMTP.IOHandler:=IdSSLIOHandlerSocketOpenSSL1; SMTP.UseTLS:= utUseImplicitTLS; IdSSLIOHandlerSocketOpenSSL1.Destination := SMTP.Host+':'+IntToStr(SMTP.Port); IdSSLIOHandlerSocketOpenSSL1.Host := SMTP.Host; IdSSLIOHandlerSocketOpenSSL1.Port := SMTP.Port; IdSSLIOHandlerSocketOpenSSL1.DefaultPort := 0; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method:=sslvTLSv1; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmUnassigned; MailMessage.From.Name := 'Тест'; MailMessage.Subject := 'Тест: '+FormatDateTime('dd.mm.yy-hh:nn',Now) ; MailMessage.From.Address :='bossalex@ya.ru'; MailMessage.Recipients.EMailAddresses := email; MailMessage.Body.Text := MemoTXT.Text; try try SMTP.Connect;// орет нет библиотеки SSL - под win рабоатает со внешними библиотекеми SSL типа libeay32.dll ssleay32dll только не FMX на VCL к яндексу коннектися и отправляет письма, // есть еще libgcc_s_dw2-1.dll libwinpthread-1.dll msvcr100.dll правда не помню тоже какието библиотеки забыл для чего, надо в инете поковырять sleep(200); Application.ProcessMessages; SMTP.Send(MailMessage); ShowMessage('Письмо отправлено!'); MailMessage.MessageParts.Clear; except on e: Exception do begin sleep(200); ShowMessage('Письмо не отправлено!'); end; end; finally MailMessage.MessageParts.Clear; SMTP.Disconnect; end; except end; end;
  3. bossalex

    Segmentation fault (11)

    ни parent ни фига не помогает я уже задрался под андроид приложение лепить только под windows fmx както работает под android одно безумие я так думаю это 10,1 глючить так как по xe 8 таких глюков не было или я чтото упустил под android 6 надо попробовать под 4 function TFormKorzina.free_(n:String):Boolean; begin try {$IF DEFINED(iOS) or DEFINED(ANDROID)} SeekObject:=FindComponent(n); if SeekObject<>nil then begin TControl(SeekObject).DisposeOf; TControl(SeekObject):=nil; end; //freeandnil(TComponent(SeekObject));//.DisposeOf; {$ENDIF} {$IFDEF MSWINDOWS} SeekObject:=FindComponent(n); if SeekObject<>nil then begin TControl(SeekObject).Parent:=nil; TControl(SeekObject).Free; TControl(SeekObject):=nil; end; {$ENDIF} except end; end;
  4. bossalex

    Segmentation fault (11)

    в коде под андроид на Delphi FMX не могу решить проблему при повторном вызове окна методом Show убиваю компонент RectangleFon.DisposeOf; служащий контейнером других элементов затем заново его создаю RectangleFon:=TRectangle.Create(FormKorzina); потом при обращении к вновь созданным элементам таким же способом получаю ошибку Segmentation fault (11). В другой форме такой метод работает а тут ругается if FormKorzina.SumDostavki>0 then FormKorzina.LabelSumStoimost.Text:=floatToStr(FormKorzina.SumDostavki)+' рублей' на выполнении Скорее кудато лезу не туда в память а что делать не в курсе пробовал убивать freeandnill(RectangleFon); результат такой же, уже и дебагером проверял ругается то на фонт то на get в компоненте использовал данный метод убийства раньше freeandnill вроде проблем не было
  5. Недавно компилил приложение на Delphi FMX Android при обращении к серверу https при выполнении Get запроса от компонента TIdHttp запросил библиотеку "Could not load SSL library" используется протокол sslvTLSv1_2 в windows все пашет в андроид нет , накопал что можно подключить библиотеки libssl.so и libcrypto.so через deployment .assets\internal , А вот как в коде дальше их использовать никто примерчик не выложил, хоть и обсуждали на интернет просторах 100 раз, те как прикрутить к IdSSLIOHandlerSocketOpenSSL1.SSLOptions.CertFile. Если есть у кого код выложите пожалуйста? или скинте по email bossalex@ya.ru IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method.sslvTLSv1_2; IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode.sslmUnassigned;