Браузер в качестве View в десктопных проектах (WebUI)

Вопросы использования сторонних (не входящих в состав FPC и Lazarus) утилит и библиотек.

Модератор: Модераторы

Re: Браузер в качестве View в десктопных проектах (WebUI)

Сообщение Alex2013 » 08.08.2023 00:36:46

Спасибо, гляну !
(Хотя мой проект Shell2Shell благополучно переехал на WebView4Delphi идея все равно интересная )
Alex2013
долгожитель
 
Сообщения: 2957
Зарегистрирован: 03.04.2013 11:59:44

Re: Браузер в качестве View в десктопных проектах (WebUI)

Сообщение delphius » 16.08.2023 23:51:31

Alex2013 писал(а):Спасибо, гляну !

Наткнулся на интересный врапер для библиотеки плеера mpv
Собрал пример, подсунул ему ссылку на видео, выдернутую из кода известного нам сайта...работает, вот скриншот
Единственное, что не радует, это размер dll - 60 Мб :cry:
Но в сети пишут, что прям отличный плеер и полноценный врапер, можете глянуть...вдруг где пригодиться :idea:

Вся магия удобна и проста:
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
begin
  FreeAndNil(cPlayer);
  cPlayer := TMPVBasePlayer.Create;
  cPlayer.InitPlayer(IntToStr(Panel2.Handle), '', '', '');
  cPlayer.OpenFile('https://hye1eaipby4w.takedwn.ws/08_14_23/08/14/22/YHMVOWRH/FD7VO3UU.mp4/master.m3u8');
end;
delphius
постоялец
 
Сообщения: 122
Зарегистрирован: 18.03.2020 13:40:11

Re: Браузер в качестве View в десктопных проектах (WebUI)

Сообщение Alex2013 » 17.08.2023 00:27:10

delphius писал(а):
Alex2013 писал(а):Спасибо, гляну !

Наткнулся на интересный врапер для библиотеки плеера mpv
Собрал пример, подсунул ему ссылку на видео, выдернутую из кода известного нам сайта...работает, вот скриншот
Единственное, что не радует, это размер dll - 60 Мб :cry:
Но в сети пишут, что прям отличный плеер и полноценный враппер, можете глянуть...вдруг где пригодиться :idea:

С одной стороны интересно но плеер на базе FFMPEG занимает cо всеми DLL 12мб в архиве и 42мб в распакованном виде.
Изображение
Последний раз редактировалось Alex2013 17.08.2023 00:31:58, всего редактировалось 1 раз.
Alex2013
долгожитель
 
Сообщения: 2957
Зарегистрирован: 03.04.2013 11:59:44

Re: Браузер в качестве View в десктопных проектах (WebUI)

Сообщение delphius » 17.08.2023 00:31:40

Alex2013 писал(а):плеер на базе FFMPEG занимает cо всеми DLL 12мб в архиве и 42мб в распакованном виде

19 метров в архиве и требуется только одна dll
delphius
постоялец
 
Сообщения: 122
Зарегистрирован: 18.03.2020 13:40:11

Re: Браузер в качестве View в десктопных проектах (WebUI)

Сообщение Alex2013 » 17.08.2023 00:35:10

delphius писал(а):19 метров в архиве и требуется только одна dll

О это уже интереснее ! А что проигрыванием m3u8 с локального диска ?
Зы
Кстати, некоторые DLL успешно сжимаются разными EXE-паками.
Последний раз редактировалось Alex2013 17.08.2023 00:38:40, всего редактировалось 1 раз.
Alex2013
долгожитель
 
Сообщения: 2957
Зарегистрирован: 03.04.2013 11:59:44

Re: Браузер в качестве View в десктопных проектах (WebUI)

Сообщение delphius » 17.08.2023 00:36:55

Alex2013 писал(а):А что проигрыванием m3u8 с локального диска ?

Без понятия, из сети тянет норм, остальное проверяейте :idea: :mrgreen:
delphius
постоялец
 
Сообщения: 122
Зарегистрирован: 18.03.2020 13:40:11

Re: Браузер в качестве View в десктопных проектах (WebUI)

Сообщение Alex2013 » 17.08.2023 00:39:40

delphius писал(а):Без понятия, из сети тянет норм, остальное проверяйте

Ок... :wink:
Alex2013
долгожитель
 
Сообщения: 2957
Зарегистрирован: 03.04.2013 11:59:44

Re: Браузер в качестве View в десктопных проектах (WebUI)

Сообщение delphius » 17.08.2023 00:54:35

Alex2013 писал(а):Кстати, некоторые DLL успешно сжимаются разными EXE-паками.

И его можно сжатым упихать внутрь экзешника самой программы в виде ресурса, например вот этим способом (эдакий нативный аналог созданию самораспаковывающегося архива :mrgreen: ) и при запуске проверять, если в папке программы dll отсутствует, то распаковать и начать работать с dll, иначе сразу работать, сведя распространяемый дистрибутив к одному единственному бинарнику.
delphius
постоялец
 
Сообщения: 122
Зарегистрирован: 18.03.2020 13:40:11

Re: Браузер в качестве View в десктопных проектах (WebUI)

Сообщение delphius » 24.08.2023 14:48:08

Вышла новая версия библиотеки, обновил к ней wraper

Из нового и интересного - реализован предложенный мной headless режим работы окна браузера, при котором паскалевская программа работает в обычном режиме (консоль или форма), а браузер работает в фоновом (без вывода окон, сообщений, только в виде задач в памяти), при этом между ними установлена двухсторонняя связь для выполнения скриптов из паскаля и возврата в него данных.

Практическое использование - выполнение любых задач, которые можно решать с использованием браузера, например парсинг страниц, организация любых форм взаимодействия с любыми ресурсами в сети используя настоящий! браузер, работающий в фоновом режиме.
delphius
постоялец
 
Сообщения: 122
Зарегистрирован: 18.03.2020 13:40:11

Re: Браузер в качестве View в десктопных проектах (WebUI)

Сообщение Alex2013 » 17.10.2023 13:28:15

Тут появилась новая идея ...
Добраться до "веб-контента" и мониторить работу веб интерфейса так-же как я мониторю консоль + сделать отдельную базу данных вводимых в веб интерфейс.
В общем сейчас есть вопрос, что проще использовать для этого WebUI или WebView4Delphi а возможно имеет смысл просто сделать полу-прозрачный псевдо-прокси на другом порту (и/или локальном IP) ( и тупо просить трафик идущий с/на "нативный сервер" )?
Alex2013
долгожитель
 
Сообщения: 2957
Зарегистрирован: 03.04.2013 11:59:44

Re: Браузер в качестве View в десктопных проектах (WebUI)

Сообщение Alex2013 » 08.02.2024 15:26:41

Снова занялся очередным рефакторингом онлайн кинотеатра "Лесхоз"...
Пробовал использовать WebUI один раз срабатывает а второй раз выдает ошибку (после перезагрузи компа работает но опять только один раз )...

Ну ладно "едим дальше", придумал как использовать отдельный exe-модуль-браузер использующий WebView4Delphi (или CEF4Delphi) так чтобы он работал в окне основной программы .

В модуле-браузере пишу что-то вроде этого:
Код: Выделить всё
procedure TMainForm.FormActivate(Sender: TObject);
begin
  if (ParamCount =3 ) And (ParamStr(1)='RUN_IN_DS') then
begin
  windows.SetParent(Handle,ParamStr(2).ToInt64);
while not AddressPnl.Enabled do application.ProcessMessages;
  WVBrowser1.Navigate(UTF8Decode(ParamStr(3)));

end;
end;

А в основной программе что-то типа этого.
Код: Выделить всё
procedure TMainForm.ExecPanelResize(Sender: TObject);
begin
    if Process1.Running then begin
     Con_h:= Windows.GetFirstChild(ExecPanel.Handle);
   if ( Con_h<>0 ) and  windows.IsWindow(Con_h) then
    begin
     windows.MoveWindow( Con_h ,0,0,Execpanel.Width,Execpanel.Height,true);
    end;
    self.Refresh;
  end;

end;

procedure TMainForm.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
      Process1. Terminate (0);
end;

procedure TMainForm.FormShow(Sender: TObject);
begin

end;

procedure TMainForm.GoBtnClick(Sender: TObject);
begin
Process1. Terminate (0);
Process1.CommandLine:='SimpleBrowser.exe'
     +' RUN_IN_DS '+self.ExecPanel.Handle.ToString+' '+
    self.AddressCb.Text ;

Process1.Execute;
sleep(500);
  if Process1.Running then begin
     Con_h:= Windows.GetFirstChild(ExecPanel.Handle);
   if ( Con_h<>0 ) and  windows.IsWindow(Con_h) then
    begin
    windows.MoveWindow( Con_h ,0,0,Execpanel.Width,Execpanel.Height,true);

    end;
    self.Refresh;
  end;

end;


В результате запущенный модуль-браузер полностью интегрируется в интерфейс "док-станции"(основной программы).
Изображение

Все это хорошо но WebView4Delphi не дружит с русскими буквами в путях к программе (Кстати как-бы это поправить?), а CEF4Delphi "тяжеловат" и довольно сильно устарел
(особенно если пытаться сэкономить на размере).

Так что модуль-браузер на основе WebUI был был бы тем что "доктор прописал" но вот беда там тоже ошибка ( возможно опять проблемы со старой десятой виндой но я вообще думаю что "лесхоз" должен работать даже на XP и Win 7 так что хорошо-бы найти или сделать "лайт версию" WebUI "без излишеств" (то есть просто запуск стандартного браузера "в окне без рамок")).
Зы
Запуск стандартного браузера "напрямую" был бы идеальным вариантом, но вот беда этот фокус не позволяет использовать интеграцию через SetParent (как минимум у меня это не выходит и упорно получается "пусте окно" ).
Alex2013
долгожитель
 
Сообщения: 2957
Зарегистрирован: 03.04.2013 11:59:44

Пред.

Вернуться в Сторонние средства

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 50

Рейтинг@Mail.ru