Jump to content
View in the app

A better way to browse. Learn more.

FGX Native

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

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

Платформа: 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 Александр Клопоцкий

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

  • Author

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

Чтение чата делаю раз в минуту и отключаюсь. 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;

 

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

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

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

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

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

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

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

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

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

Edited by Vitaldj

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

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

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

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

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

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

Create an account or sign in to comment

Recently Browsing 0

  • No registered users viewing this page.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.