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

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

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

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

Сообщение delphius » 13.06.2023 10:36:49

Alex2013 писал(а):написать чуть более продвинутый функционал с простыми JS-скриптами

Вот я тоже пытаюсь сейчас в процессе освоения нового слоя визуализации в лице веб браузера, с одной стороны не скатиться в навязанный "плохой" стиль разработки, предлагаемый любой RAD, когда вся бизнес логика пишется в обработчиках событий нажатия кнопок :mrgreen:
А с другой стороны, не уйти в логику на стороне js, хотя прямо очень подмывает, все настолько хорошо, удобно, для людей и для любой задачи есть средства, а не как у нас, всё "напильником" :D
Вангую, что отсутствие нормального средства быстрой разработки интерфейса (читай редактора веб форм) будет существенным сдерживающим фактором в популяризации такого подхода и способа разработки программ с веб интерфейсом в целом
delphius
постоялец
 
Сообщения: 122
Зарегистрирован: 18.03.2020 13:40:11

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

Сообщение Alex2013 » 13.06.2023 12:48:01

Пробовал запустить fsconcept.exe ... Нефурычит крутить кружочек ожидания и все.
Alex2013
долгожитель
 
Сообщения: 2957
Зарегистрирован: 03.04.2013 11:59:44

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

Сообщение delphius » 13.06.2023 12:51:25

Alex2013 писал(а):Нефурычит крутить кружочек ожидания и все.

Проблемы могут быть всего двух категорий: недоступность источника парсинга и проблема с самим парсингом, обе ведут к отсутствию данных для передачи на вебморду.

ВПН точно включен глобально для операционной системы и сайт доступен?

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

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

Сообщение Alex2013 » 22.06.2023 13:33:30

delphius писал(а):
Alex2013 писал(а):Нефурычит крутить кружочек ожидания и все.

Проблемы могут быть всего двух категорий: недоступность источника парсинга и проблема с самим парсингом, обе ведут к отсутствию данных для передачи на вебморду.

ВПН точно включен глобально для операционной системы и сайт доступен?

Второй вопрос который может не работать - связка веб драйвер - браузер, экзешник драйвера должен совпадать по версии с версией самого хрома, у меня 114 например

1 Обнаружил что WebUI создает свой каталог на системном диске где обнаружилась куча хлама под 200 мб
2 У меня вообще по умолчанию яндекс-браузер ( как я смеюсь в ответ на удивление отдельных укр патриотов "трофейный" - на самом деле просто переводчик в ЯБраузере лучший ) так вот это вообще как бы "не совсем хром" .
( В результате мне историю покоцало :evil: ... впрочем возможно просто места на забитом системнике (опять обновление винды все выжрало ) не хватило из за растущиего каталога WebUI )
Alex2013
долгожитель
 
Сообщения: 2957
Зарегистрирован: 03.04.2013 11:59:44

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

Сообщение delphius » 25.06.2023 14:13:00

Alex2013 писал(а):Обнаружил что WebUI создает свой каталог на системном диске где обнаружилась куча хлама под 200 мб

Вполне вероятно, только WebUI это просто оболочка, вызывающая стандартный браузер в системе, сама по себе она ничего не создает.
Alex2013 писал(а):умолчанию яндекс-браузер

Вроде речь про "стандартный" не идет, по умолчанию чистый chrome
Alex2013 писал(а):В результате мне историю покоцало

Это точно не я :oops: :roll:

В итоге, не стал мучить Internet Tools, размыслив таким образом: у меня же уже есть браузер (запущенное окно), зачем мне что-то еще? :mrgreen:
Написал на javascript загрузчик и обработчик xpath и все взлетело :) Проблему с CORS решил с помощью CORS Proxy.
В итоге все упростилось в разы, практически Production Ready, только теперь пока не очень понятно, зачем вообще нужен паскаль :lol: , ведь вся магия - на стороне браузера :idea:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
delphius
постоялец
 
Сообщения: 122
Зарегистрирован: 18.03.2020 13:40:11

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

Сообщение Alex2013 » 03.07.2023 17:56:56

Интересно "буду посмотреть "! :idea:
Alex2013
долгожитель
 
Сообщения: 2957
Зарегистрирован: 03.04.2013 11:59:44

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

Сообщение Alex2013 » 02.08.2023 00:02:48

Вроде работает но что-то я "туплю со страшной силой " насчет то как можно без разных хитростей типа "удочерения окна" (windows.SetParent) вставить браузер в например в TPanel. :roll:
Alex2013
долгожитель
 
Сообщения: 2957
Зарегистрирован: 03.04.2013 11:59:44

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

Сообщение delphius » 02.08.2023 00:10:11

Alex2013 писал(а):насчет то как можно без разных хитростей типа "удочерения окна" ( windows.SetParent ) вставить браузер в например в TPanel

наверное никак :roll: это обычный системный браузер, не компонент и не модуль паскаля, связь с паскалем только через websockets, с таким же успехом паскалевская часть (бэкэнд) может находиться на одном компе, а браузерная часть (фронтэнд) на другом 8)

Только если создать свой собственный пользовательский компонент для lazarus и предоставлять управление и отображение данных на форме. Но уровень такого проекта сопоставим с работой по внедрению cef4delphi
Проще будет адаптировать с delphi новомодный webview2, который отлично пашет под windows, однако кормление завтраками о разработке под nix идёт уже несколько лет и это печально.
delphius
постоялец
 
Сообщения: 122
Зарегистрирован: 18.03.2020 13:40:11

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

Сообщение Alex2013 » 02.08.2023 12:32:51

delphius писал(а):наверное никак это обычный системный браузер, не компонент и не модуль паскаля, связь с паскалем только через websockets, с таким же успехом паскалевская часть (бэкэнд) может находиться на одном компе, а браузерная часть (фронтэнд) на другом

Жаль! Я тут начал клепать оболочку для запуска SD...
(Скрин "свежей рыбы")
Изображение
...и там разумеется такая штука очень пригодится.
В принципе меня бы хотя бы Handle окна надежно получить ( можно разумеется забабахать "веб-интерфейс поверх веб-интерфейса" но при чем тут паскаль действительно мало понятно ... :roll: )

Добавлено спустя 10 минут 17 секунд:
delphius писал(а):Проще будет адаптировать с delphi новомодный webview2, который отлично пашет под windows, однако кормление завтраками о разработке под nix идёт уже несколько лет и это печально.

webview2 мной уже окучен но 400-метров что но добавляет в систему ( прячась за крохотным инсталлятором ) не вдохновляют.
Блин почему майкрософт просто не обновили старый "интернет контрол"( ieframe.dll ) "загадка на 100 миллионов долларов".

Добавлено спустя 31 минуту 53 секунды:
При использовании SHDocVw_1_1_TLB.pas и.т.п.
Немного помогает Browser.ComServer.Set_Silent(True); (как минимум воплей о "ошибке сценария " невидно )
Alex2013
долгожитель
 
Сообщения: 2957
Зарегистрирован: 03.04.2013 11:59:44

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

Сообщение delphius » 02.08.2023 13:32:04

Alex2013 писал(а):Я тут начал клепать оболочку для запуска SD

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

Добавлено спустя 11 минут 31 секунду:
Alex2013 писал(а):webview2 мной уже окучен но 400-метров что но добавляет в систему ( прячась за крохотным инсталлятором )


Идея изначально основывалась на том, что edge уже встроен в систему и его движок как раз и используется без лишних телодвижений с чьей либо стороны (системы и пользователя), а с учётом того, что он кроссплатформенный, то счастье могло случиться и на Линукс, но увы...

Добавлено спустя 17 минут 23 секунды:
Alex2013 писал(а):как минимум воплей о "ошибке сценария " невидно

Я просто очень редко сам использую Lazarus, в основном fpc через visual studio code в силу специфики применения результатов работы - системное администрирование :D
delphius
постоялец
 
Сообщения: 122
Зарегистрирован: 18.03.2020 13:40:11

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

Сообщение Alex2013 » 02.08.2023 14:17:03

Еще небольшой "хак реестра" помогает
Shell2Shell.reg
Код: Выделить всё
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"Shell2Shell.exe"=dword:00002af9

(Shell2Shell имя exe-шника куда "встроен" браузер )

Это включается целевая эмуляция Internet Explorer 11.1 ( Работает не все но все-же заметно лучше )
Последний раз редактировалось Alex2013 02.08.2023 14:23:13, всего редактировалось 1 раз.
Alex2013
долгожитель
 
Сообщения: 2957
Зарегистрирован: 03.04.2013 11:59:44

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

Сообщение delphius » 02.08.2023 14:20:16

Alex2013 писал(а):хак реестра


Костыль, подпирающий костыль? :mrgreen: :lol:
delphius
постоялец
 
Сообщения: 122
Зарегистрирован: 18.03.2020 13:40:11

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

Сообщение Alex2013 » 02.08.2023 14:31:02

delphius писал(а):Костыль, подпирающий костыль?

Уж больно хороший метод-доступа был и то него жалко совсем отказывается ...
Тем более что в SD не "живая сеть" а просто обычный хотя и местами навороченный веб-интерфейс.
( То есть если заработает то так и будет работать по крайней мере до выхода новых версий оболочек на которые переходить никто не заставляет - чуть хуже то что там с расширениями творится (вот они реально полезны) но эти проблемы касаются и webview2 )
А что до "целевой эмуляции" то ее даже супер обновляемый вайбер включает . ( кстати значение для ключа я у него и подсмотрел )

Добавлено спустя 32 минуты 1 секунду:
Хм!
https://russianblogs.com/article/7600388237/
Alex2013
долгожитель
 
Сообщения: 2957
Зарегистрирован: 03.04.2013 11:59:44

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

Сообщение delphius » 02.08.2023 15:21:02

Alex2013 писал(а):Хм!

Да, я пользовался именно этим способом, чтобы повыситься до edge mode в 11 Эксплорере, но это касалось вопросов установки и использования сертификатов на сервере и не касалось впрямую Паскаля.
https://stackoverflow.com/questions/385 ... n-contents
delphius
постоялец
 
Сообщения: 122
Зарегистрирован: 18.03.2020 13:40:11

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

Сообщение Alex2013 » 03.08.2023 12:37:19

delphius писал(а):
Alex2013 писал(а):Хм!

Да, я пользовался именно этим способом, чтобы повыситься до edge mode в 11 Эксплорере, но это касалось вопросов установки и использования сертификатов на сервере и не касалось впрямую Паскаля.
https://stackoverflow.com/questions/385 ... n-contents


Мой немного избыточный код установки/удаления ключа реестра.
Код: Выделить всё
uses
  Windows, Messages,registry...
...
procedure TSetUP_Form.Button6Click(Sender: TObject);
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CURRENT_USER;
if not Reg.OpenKey('Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', True)
then
begin
ShowMessage ('Ветка не обнаружена... Попытка создания');
if not Reg.OpenKey('Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', false)
then
  ShowMessage ('Попытка создания провалена');
end
else
if reg.KeyExists('Shell2Shell.exe') then  begin
ShowMessage ('Уже есть ['+intToStr(Reg.ReadInteger('Shell2Shell.exe'))+']');
If reg.DeleteKey('Shell2Shell.exe') then
if not reg.KeyExists('Shell2Shell.exe') then
ShowMessage ( 'Удален' );
end
else
begin  if reg.CreateKey('Shell2Shell.exe') then
   Reg.WriteInteger('Shell2Shell.exe',1101);
     if reg.KeyExists('Shell2Shell.exe') then
          ShowMessage ('Ключ установлен ['+intToStr(Reg.ReadInteger('Shell2Shell.exe'))+']')
  end;
      finally
    Reg.CloseKey;
    Reg.Free;
  end;
end;


Зы
Однако оказывается я сильно не дооценил навороченность веб-интерфейса оболочки "автоматика 1111" для SD
Она совершенно не работает даже в CEF4Delphi ( Правда это старая и урезанная версия но я там даже Web-GL и Web-VR запускал )
Последний раз редактировалось Alex2013 03.08.2023 13:43:35, всего редактировалось 1 раз.
Alex2013
долгожитель
 
Сообщения: 2957
Зарегистрирован: 03.04.2013 11:59:44

Пред.След.

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

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

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

Рейтинг@Mail.ru
cron