Доброго времени суток, уважаемые форумчане!
Подскажите кроссплатформенное (Linux и Windows) решение для отображения html c CSS, JS и Flash.
Необходимо отображать странички (хранятся локально) в своем окне и динамически менять контент из программы.
Целевая OS Linux (Ubuntu), но от поддержки винды пока не отказываюсь.
Сейчас присматриваюсь к QtWebkit и к GeckoPort.
Если кто-то имел опыт работы с этими средствами, просьба поделиться впечатлениями
При использовании QtWebkit придется таскать с собой библиотеки Qt ?
Говорят GeckoPort плохо документирован. Что выбрать?
Отображение html c CSS, JS и Flash
Модератор: Модераторы
QtWebkit, когда я его ковырял полгода/год назад, был еще глючный. Очень странно рендерил страницы, часть изображений "не осиливал".
Надо таскать с собой библиотеки qt и библиотечку "переходничок".
GeckoPort под линуксом будет работать только от версии fpc 2.5.1. И то вроде как с косяками. Под виндой, говорят, все нормально.
Если время позволит - отписывайтесь, пожалуйста, по всплывающим траблам/решениям/находкам, очень интересно, как оно будет работать и готово ли к использованию
Добавлено спустя 3 минуты 27 секунд:
Ах да, для GeckoPort требуются библиотеки XULRunner мозиловские..
Надо таскать с собой библиотеки qt и библиотечку "переходничок".
GeckoPort под линуксом будет работать только от версии fpc 2.5.1. И то вроде как с косяками. Под виндой, говорят, все нормально.
Если время позволит - отписывайтесь, пожалуйста, по всплывающим траблам/решениям/находкам, очень интересно, как оно будет работать и готово ли к использованию
Добавлено спустя 3 минуты 27 секунд:
Ах да, для GeckoPort требуются библиотеки XULRunner мозиловские..
R@diO писал(а):Подскажите кроссплатформенное (Linux и Windows) решение для отображения html c CSS, JS и Flash.
Firefox/Chrome/Chromium. Я серьёзно.
R@diO писал(а):Необходимо отображать странички (хранятся локально) в своем окне и динамически менять контент из программы.
Программу можно написать в виде маленького локального web-сервера с использованием fcl-web. При запуске она может запустить внешний браузер, и передать ему URL со ссылкой на себя, например http://localhost:8080/index.
Плюсы такого решения:
- надёжность. Программа только генерирует странички и отдаёт их браузеру. Взаимодействие с браузером происходит по протоколу http, который стандартизирован, документирован, не зависит от языка программирования, и очень широко используется, в отличие от разных API для встраивания браузерных движков в приложения. Браузер тоже хорошо протестирован, т.к. используется огромным количеством пользователей.
- минимизация внешних зависимостей программы. Это означает, что программа сможет работать без перекомпиляции под разными дистрибутивами Linux с разными версиями Qt, Gtk, Gecko, при условии что используются совместимые по ABI базовые библиотеки типа libc. Кроме того, сборка программы также значительно упрощается: программа может быть собрана чистым FPC, без заморочек с версиями Lazarus и виджетсетами.
- малый размер программы, т.к. браузер уже есть в любой ОС и его не обязательно таскать с собой.
Минусы:
- fcl-web практически не документирован. Придётся читать его исходники и, возможно, задавать вопросы в рассылке. Однако объём исходников для чтения на порядок меньше, а их читабельность - выше, чем у прослоек для интеграции Gecko/WebKit, по которым тоже нет документации.
Пример приложения, реализованного подобным образом, но на C - Fossil SCM.
B4rr4cuda писал(а):Если время позволит - отписывайтесь, пожалуйста, по всплывающим траблам/решениям/находкам, очень интересно, как оно будет работать и готово ли к использованию
О, у меня еще будет тысячу вопросов
По мере продвижения буду описывать процесс и выкладывать наработки.
Скажу больше - после многих других форумов, лояльность сообщества freepascal.ru приятно удивила
И с моей стороны было бы преступлением против совести не ответить тем же.
Odyssey писал(а):Программу можно написать в виде маленького локального web-сервера с использованием fcl-web. При запуске она может запустить внешний браузер, и передать ему URL со ссылкой на себя, например http://localhost:8080/index.
Я мельком рассматривал возможность использования браузера, установленного в системе, но как-то прошел мимо fcl-web.
Описанного функционала мне достаточно, но есть такой момент: окно браузера с загруженной страницей должно отображаться во весь экран, без каких-либо панелей инструментов, меню и даже без заголовка окна. Желательно настраивать окно браузера подобным образом из программы.
И еще, насколько я понял, в этом случае у меня не будет доступа к DOM страницы?
Т.е. чтобы изменить содержимое одного блока, мне нужно будет перегружать страницу полностью или менять контент средствами JS?
