Jump to content

Recommended Posts

Posted (edited)

Название приложения: Фаберлик Подарки

Платформа: Android 32 bit, Android 64 bit

Поддерживаемые версии ОС: Android 5.0 и новее

Необходимое свободное место: до 80 Мб

Описание: Приложение "Фаберлик Подарки" предназначено для для сопровождения постоянных покупателей продукции Фаберлик.

Приложение соединяется с базой данных MySQL на обычном хостинге сайта. Для подключения использую компоненты UniDAC, SecureBridge.

Каждому скачиванию присваивается порядковый номер, сохраняется в телефоне, по нему отбираются и показываются сообщения чата для данного клиента. При приходе сообщения делаю "Local notification" из примера.

Программа администрирования на Delphi 10.4.1 VCL компонентах.

Ссылка на приложение: https://play.google.com/store/apps/details?id=faberlic24.by

Screenshot_20220830-004830.thumb.jpg.d5a92e8d084ca656229ea089ec9bbe76.jpg

Screenshot_20220719-002343.thumb.jpg.33c3ccef8f08b7eec505bdf2ee490d7e.jpg

Screenshot_20220627-013834.thumb.jpg.364ab68495fcd5ab115ed83cce9bb0c3.jpg

 

 

Screenshot_2020-12-21-22-43-25-656_faberlic24_by.thumb.png.ac69513c2861ea3d3a4763bf53cb993e.png

 

Screenshot_2020-12-21-22-43-34-627_faberlic24_by.thumb.png.80bea058f4f9aa4c484abf15e2d8f8ab.png

Screenshot_2021-02-02-09-06-46-524_faberlic24_by.thumb.png.ebd77ec534b4c86dda4e9ecbd0513529.png

Screenshot_2021-02-02-09-25-44-589_faberlic24_by.thumb.png.0fdb3e067f6a4c441ea98488ffe81df7.png

Screenshot_2021-02-02-07-43-24-775_faberlic24_by.thumb.png.b2843464970cf64494c36548eb7a9561.png

 

 

111.png.dcc6fd27cab5eb633725644879a9a60d.png

112.png.c12a32e82960d5792863bb812d89d1cf.png

106.png.b3965e8246f8caeca048c1404a957346.png

107.png.cba1f2ec81c153ae79ac728b09dd6bbf.png

108.png.b8f011f9bf0bd9f88372a179bfa12503.png

 

 

Screenshot_2021-01-30-21-29-01-076_faberlic24.by.png

Screenshot_20220918-235642.jpg

Edited by Александр Клопоцкий
  • Like 5
  • Thanks 3
Posted

@Александр Клопоцкий Т.е. я как понял вы напрямую подключаетесь к базе и держите коннект? С Юнидаком не работаю, поэтому интересно как там это организованно, на сколько это стабильно? Почему не используете http?

Posted

Постоянно коннект не держу. Только в момент нажатия кнопки устанавливаю коннект, вставляю запись в таблицу, с сразу отключаюсь.

Чтение чата делаю раз в минуту и отключаюсь. http - будет прослойка, нужно будет все поля таблиц через нее прописывать, неудобно.

Хочется работать напрямую с SQL, пока ошибок с обрывом соединения в приложении не было.

SecureBridge держит SSH подключение в момент коннекта, хостеры не дают подключаться напрямую к базе на хостинге без SSH сертификата.

 

114.png.973acb2bb896ad2dc67f84ae7d601f50.png

procedure TdmMain.Hoster_FL_REG_Insert;
var
  UniStoredProc: TUniStoredProc;
begin
  if ((PPL_SURNAME <> '') or (PPL_FIRSTNAME <> '') or (PPL_PHONE <> '')) then begin

    Hoster_Connect;         // Подключение к хостингу

    UniStoredProc := TUniStoredProc.Create(nil);
    try
      UniStoredProc.Connection := UniConnection;
      UniStoredProc.StoredProcName := 'st_reg_insert';
      UniStoredProc.PrepareSQL;

      UniStoredProc.ParamByName('P_APP_ID').ParamType := ptInput;
      UniStoredProc.ParamByName('P_APP_ID').DataType := ftInteger;
      UniStoredProc.ParamByName('P_APP_ID').AsInteger := StrToInt(APP_ID);

      UniStoredProc.ParamByName('P_PPL_SURNAME').ParamType := ptInput;
      UniStoredProc.ParamByName('P_PPL_SURNAME').DataType := ftString;
      UniStoredProc.ParamByName('P_PPL_SURNAME').AsString := PPL_SURNAME;

      UniStoredProc.ParamByName('P_PPL_FIRSTNAME').ParamType := ptInput;
      UniStoredProc.ParamByName('P_PPL_FIRSTNAME').DataType := ftString;
      UniStoredProc.ParamByName('P_PPL_FIRSTNAME').AsString := PPL_FIRSTNAME;

      UniStoredProc.ParamByName('P_PPL_PHONE').ParamType := ptInput;
      UniStoredProc.ParamByName('P_PPL_PHONE').DataType := ftString;
      UniStoredProc.ParamByName('P_PPL_PHONE').AsString := PPL_PHONE;

      UniStoredProc.Execute;
    finally
      UniStoredProc.Free;
    end;

    Hoster_Disconnect;      // Отключение от хостинга
  end;
end;
procedure TdmMain.Hoster_Connect;
begin
  ScFileStorage.Path := TPath.GetDocumentsPath;  // Папка на Android
  ScSSHClient.Connected := True;
  ScSSHChannel.Connected := True;

  if ScSSHChannel.Connected then UniConnection.Connected := True
  else
    TfgDialogs.ShowMessage('SSH - Not Connected!');
end;
procedure TdmMain.Hoster_Disconnect;
begin
  ScSSHChannel.Connected := False;
  ScSSHClient.Connected := False;
end;

 

  • Like 3
Posted

ну вообще чат логичнее всего сделать на вебсокетах или нотификейшенах, хотя если чат должен быть и на десктопе то уведомления отпадают и остаются только вебсокеты

Posted

Чат это дело второе, тут основной коннект напрямую идёт.

Идея конечно интересная. Когда то помню тоже так пытался сделать, при первых попытках перехода с десктопа на вэб, но и вправду прямого коннекта не получилось, пришлось осваивать рестапи. 

Думаю этот способ очень даже можно использовать,  если делать короткие соединения с базой для чтения и изменений, а в остальное время работать автономно. 

Posted (edited)
12 минут назад, knsg12 сказал:

Чат это дело второе, тут основной коннект напрямую идёт.

Идея конечно интересная. Когда то помню тоже так пытался сделать, при первых попытках перехода с десктопа на вэб, но и вправду прямого коннекта не получилось, пришлось осваивать рестапи. 

Думаю этот способ очень даже можно использовать,  если делать короткие соединения с базой для чтения и изменений, а в остальное время работать автономно. 

Я с прошлого года тоже стал использовать почти прямой коннект к БД. Через RemoteDB. Это в чистом виде как трехзвенка, но не через http, а напрямую в БД. Очень удобно! Причем это обернуто все в ssl и авторизацию. Пол года использую - кайфую). Но! На серваке надо ставить «переходник» в виде специального сервиса. А так как у меня свой виртуальный сервер - с этим нет пробем. 

Edited by Vitaldj
Posted

RemoteDB это в поставке TMS? Наверное платная штука. Хорошо, спасибо за совет, гляну в эту сторону.

Posted
45 минут назад, knsg12 сказал:

RemoteDB это в поставке TMS? Наверное платная штука. Хорошо, спасибо за совет, гляну в эту сторону.

Да ТМS. Но работает как часы! Да платно. Но повторная через год подписка 30%. 

Posted

Помимо remotedb там в комплекте не менее замечательный инструменты, тот же sparkle и xdata, первый это кастомный кроссплатформенный веб-сервер, второе это restapi/api сервер подключаемый к sparkle одной строчкой в коде. Еще была репликация между 2 БД, кажется echo называется, но его не использовал.

Posted

Лично я юзаю HTTP запросы и на хостинге PHP или Python и норм. Всё отлично пашет. К тому же перенести скрипты и бд на любой дешевый хостинг заказчик может всегда. Но каждый сам танцует свою мульку. А приложение выглядит прикольно. Через годик думаю вообще будет как сказка пахать и выглядить! )

  • Like 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...