Использование установленных в ОС браузеров из программы

Вопросы программирования и использования среды Lazarus.

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

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

Сообщение Alex2013 »

В общем на рабочий ноут webview2 как и не установился. ( явно больше пары гигабайт для установки хочет ( возможно потом мусор чистится но есть впечатление что-то кропотливо пересобирают ) )
Тестовых проектов вагон но ни один не работает . TWebBrowser.zip
Нашел
Microsoft.WebView2.FixedVersionRuntime.107.0.1418.26.arm64.cab как я понял это фикс для Microsoft Edge он должен работать и как хром-пак суть прикола в том что его там 400 мб ! (то что загрузчик размером 123мб качает с сайта Microsoft )

Добавлено спустя 1 час 49 минут 51 секунду:
Все таки поставил нужно качать MicrosoftEdgeWebview2Setup.exe он не большой но тянет с сайта те же 400-500 мб (по окончании инсталляции правда чистит временные файлы и пакует бекап но все равно напрягает )
Зато работает явно процентов на 20-30 быстрее моего старого хромо-пака.
Изображение
Зы
Не совсем понятно что там с лицензией ...
Есть вот такой сайт https://winsoft.sk/webview.htm там оболочка над webview2 вроде платная.
S_Gur
постоялец
Сообщения: 136
Зарегистрирован: 30.12.2018 21:17:42

Сообщение S_Gur »

Только что провели с приятелем эксперимент. Дано - Windows 11 (естественно со встроенным эджем), Delphi 11, SDK НЕ установлен. Это принципиально. Проект: стандартный TWebBrowser, SelectedEngine EdgeOnly. DLL 32 и 64 бита я ему дал из своего пакета. Работает в обеих разрядностях как в VCL, так и в FMX. Вывод: как минимум в 11-х виндах нужна только DLL рядом с экзешником. НИКАКИХ дополнительных телодвижений не требуется
Alex2013
долгожитель
Сообщения: 3230
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

В Windows 11 много чего есть например Windows for Android ... А вообще возможно что webview2 поставился вместе с какой нибудь шараварой. Но тут интереснее прикол появился !
webview2-pob.zip (пример для лазаруса по идее должен работать без левой DLL ) все делал "по феншую", а там пишет "незарегистрированный класс " и привет аборигенам .
S_Gur
постоялец
Сообщения: 136
Зарегистрирован: 30.12.2018 21:17:42

Сообщение S_Gur »

Alex2013 В 11-й винде WebView2 ставится и обновляется автоматически и процесс этот происходит практически с момента инсталляции операционки. Не далее как сегодня утром мой IOBit UnInstaller уведомил меня об установке (обновлении) Microsoft WebView2. Сильно подозреваю, что и в любой винде после инсталляции Edg-а это обновление также будет происходить автоматом. Насколько я помню, в 10-ке происходило то же самое. Опять же возвращаемся к теме топика "Использование установленных в ОС браузеров". Я уже давно пришел к выводу, что для выполнения любых процессов, которые могут выполняться операционной системой, в очередь надо попытаться использовать именно системное их выполнение, и лишь убедившись в невозможности вызвать этот процесс, нужно писать свою процедуру
Alex2013
долгожитель
Сообщения: 3230
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

Вообщем использовал пакет WebView4Delph (лазарусе 2.0.10 (64) работает никаких лишних DLL вроде не хочет (Упс! все-же WebView2Loader.dll в папке с бинарником есть !) :idea: )
https://wiki.lazarus.freepascal.org/WebView4Delphi
https://github.com/salvadordf/WebView4Delph
https://github.com/salvadordf/WebView4D ... s/main.zip

Изображение
Зы
Убеждать меня что при наличии выбора лучше использовать как можно более стандартные "системные компоненты" не нужно я завел эту тему потому что старый метод доступа к "встроенному" браузеру внезапно ушел в "глубокую эмуляцию" древнего IE ( год назад все отлично работало )
Изображение
Но беда в том что выбор сейчас чуть сомнительный. Так что видимо придется делать два варианта "Браузер-пака".
S_Gur
постоялец
Сообщения: 136
Зарегистрирован: 30.12.2018 21:17:42

Сообщение S_Gur »

А размер такого приложения? И все в одном экзешнике или что-то еще рядом размещать надо?

Пощупал я его. По сути дела - это организация такого же использования Edge в Лазарусе. С точки зрения дельфей смысла никакого. Идея та же - использовать доступ к установленному Edge через ту же DLL
Alex2013
долгожитель
Сообщения: 3230
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

S_Gur писал(а):А размер такого приложения? И все в одном экзешнике или что-то еще рядом размещать надо?
Так вот-же !

TestBin.7z 53мб
Это разумеется архив ( на диске будет +200 мб) Но главное то что этот пак задуман "как плагин-опция" .
( То есть хочешь дополнительное удобство? Качай дополнительный пак ! И а сейчас кроме хром-пака можно будет выбрать WebView2- пак ( он будет заметно поменьше но будет дополнительно включать в себя MicrosoftEdgeWebview2Setup.exe или возможность его закачки )
S_Gur
постоялец
Сообщения: 136
Зарегистрирован: 30.12.2018 21:17:42

Сообщение S_Gur »

Интересно, что в последнем пакете WebView4Delphi с гитхаба WebView2Loader.dll от 31.10, а на сайте микрософт - от 25.10. И версия dll новее
Alex2013
долгожитель
Сообщения: 3230
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

Ага ! Именно то что я и говорил .
С другой стороны, WebView2требуется отдельная среда выполнения браузера WebView2, которая должна быть явно установлена на целевой машине. Даже если на компьютере уже установлен новый браузер Microsoft Edge Chromium, WebView2среда выполнения должна быть установлена отдельно. Вы, как разработчик приложения, должны убедиться, что он попадает на целевую машину. Это означает либо раздувание вашей установки, либо загрузку и установку как часть вашей установки или запуска приложения, ни одно из которых не является приятным решением.
https://weblog.west-wind.com/posts/2021 ... NET-Part-1
S_Gur
постоялец
Сообщения: 136
Зарегистрирован: 30.12.2018 21:17:42

Сообщение S_Gur »

Я отдельно WebView2 точно не сажал. Приятель мой, с которым мы вчера экспериментировали, тоже. Может, дело именно в 11-й винде. Хотя мой шеф в офисе пробовал мою демонстрашку на 10-ке и точно не на машинах разработчиков. Передавал я ему только экзешник и DLL
Alex2013
долгожитель
Сообщения: 3230
Зарегистрирован: 03.04.2013 11:59:44

Сообщение Alex2013 »

Тадам ! Подключил WebView4Delphi в 32 байтном режиме ! Скажите ну и что ? И будете правы вот только базовая версия Лазаруса у меня lazarus-2.0.8 и повозится с ним пришлось нехило ( вначале "домодифицировал" пакет до того что Лазарус перестал собираться от слова совсем совсем ) В принципе отсутствие совместимости со старыми версиями ожидаемо WebView4Delphi пакет новый и никто не обязан проверять его совместимость со старыми версиями lcl/rtl/fpc ( Лазарус все-же не дельфи ) но неплохо бы явно указать версию где пакет гарантированно работает.
Изображение
S_Gur
постоялец
Сообщения: 136
Зарегистрирован: 30.12.2018 21:17:42

Сообщение S_Gur »

Alex2013, тебе настолько принципиальна версия 2.0.8? Я обычно стараюсь обновиться до последней...
Сквозняк
энтузиаст
Сообщения: 1159
Зарегистрирован: 29.06.2006 22:08:32

Сообщение Сквозняк »

Alex2013 писал(а):но неплохо бы явно указать версию где пакет гарантированно работает.
А это почти нигде не пишут и через время попробуй угадай что с чем собирается.
Аватара пользователя
Sharfik
энтузиаст
Сообщения: 839
Зарегистрирован: 20.07.2013 01:04:30

Сообщение Sharfik »

S_Gur писал(а):Alex2013, тебе настолько принципиальна версия 2.0.8? Я обычно стараюсь обновиться до последней...
Я установил последнюю 2,2 версию, после этого весь проект послал меня нафиг. И нужны мне такие обновления, когда там подстава на сутки работы?
iskander
энтузиаст
Сообщения: 630
Зарегистрирован: 08.01.2012 18:43:34

Сообщение iskander »

Sharfik писал(а):Я установил последнюю 2,2 версию, после этого весь проект послал меня нафиг.
2,2 это что? И какая была предыдущая версия?
Ответить