LINUX.ORG.RU

Embedded web browser

 


0

1

Хочу встроить браузер в приложение, есть какая-то готовая библиотека? Нужен html5 и js. Если не затруднит, хотелось бы почитать и примеры кода — я только учусь. Спасибо.


погуглить насчет java биндингов к webkit с примерами?

anonymous
()

Xulrunner(есть готовая java либа,но последние версии надо компилять)
https://developer.mozilla.org/en-US/docs/JavaXPCOM/Embedding_Mozilla_in_a_Jav...
https://developer.mozilla.org/en-US/docs/JavaXPCOM

Этоже(что выше) но готовое есть в eclipse webbrowser(както так называется,естественно без еклипса и SWT никуда)

Насчет самой идеи интеграции xylrunnera в java-естественно из за награмождения костылей будет тормозить и будет работать только натой ОС на которой разрабатываеш,при переносе на другую ОС(даже тойже версии как у тебя)-скорее всего работать не будет,нужны танцы с бубном и версиями xulrunner.(случайные падения тоже случаются,но их в сотни раз меньше чем с вебкитом)

Есть вебкит интеграция(нагугли сам),но она более глючная чем xulrunner.Глюки вебкита-случайные падения,как самого вебкита,так и java-моста из-за непредвиденного поведения вебкита(это и специфика рендера которая может быть несовместима с java AWT/SWT запущенным рендером,AWT/SWT дает исключение(или не дает забирать(память/регион/подобное) вебкиту) критическое/непредвиденное для java-моста(или вебкит падает изза невозможности рендерить) и забирает с собой java,т.к. сегфаулт у вебкита(или java-биндинга) и java неможет обратится к памяти бинарной либы(java-интеграции или самого вебкита) (это я еще недоконца описал...и это один из возможных сценариев...там таааааааааааааакие костыли понавешаны(и в джаве и вебките) что удивительно что оно вообще работает

Лучше всего(что яб испольовал)-интегрировать awesomium,просто выйдет менее глючное чем с вебкитом или xulrunner.(это если так реально никак не заменить)

«Остальное»(самодельные поделия)-конечно если ты допилишь-может будет работать,но однозначно-тебе прийдется держать отдельную страницу для своего костыля,и изобрести свою html разметку,помимо css и прочего,что у тебя.Будет выглядеть в итоге невероятно криво и дико.

Но лучше-запускать браузер из своего софта если надо,не делай из java браузер,или пиши нормальное веб приложение и не трогай java.

anonymous
()
Ответ на: комментарий от anonymous

Мне нужно всего лишь авторизоваться по oauth и забрать url, на который будет редирект. Если со встроенными браузерами все так грустно, то как бы вы поступили?

jdev
() автор топика
Ответ на: комментарий от jdev

Я видел эту штуку, она ужасно тормозит.

Если драйвера на видеокарту стоят нормальные, то скорость вполне себе. Это конечно не очень удачное решение, понимаю, но в последних версиях явы оно присутствует прямо из коробки.

Amp ★★★
()
Ответ на: комментарий от Amp

С версии 7u10, специально ради неё вчера обновился.

jdev
() автор топика
Ответ на: комментарий от jdev

Мне нужно всего лишь авторизоваться по oauth и забрать url, на который будет редирект.

А в чем проблема обычными запросами из джавы?А кривой oauth либой прикрутить,или самому реализовать,там делов на пару минут.

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

Т.е. для вашей задачи-никакие браузеры ненужны...

anonymous
()
Ответ на: комментарий от anonymous

есть разные задачи, возможно нужно исполнять скрипты, загружать всю статику. если с последним еще можн осправится то скрипты уже становятся проблемой. можно поднять разный phantom js и написать логику на ноде, если с жавой все так печально

trashymichael ★★★
()
Ответ на: комментарий от anonymous

Дело в том, что в окне браузера пользователь должен подтвердить авторизацию, а как сделать без браузера я не знаю. Я пишу клиент для одного веб-сервиса и сталкиваюсь со всем этим впервые, поэтому по ходу дела и возникают такие глупые вопросы. Прошу прощения, если вывожу кого-то из себя своей неопытностью, мне нужен лишь толчок в правильном направлении.

jdev
() автор топика
Ответ на: комментарий от jdev

мне нужен лишь толчок в правильном направлении.

ты делаешь порт веб приложения на java(зачем....).

Берешь смотришь все скрипты твоего вебприложения с html и css и переносишь ВЕСь этот код на свою java,все.Ничего сложного.

Для новичка как ты-установи Wireshark и смотри на запросы что шлет твое веб приложение,если сложно разобраться в коде.

anonymous
()
Ответ на: комментарий от anonymous

ты делаешь порт веб приложения на java(зачем....).

Хочется поиграться с API этого приложения, потеребить ЧСВ и набраться опыта. Спасибо.

jdev
() автор топика
Ответ на: комментарий от jdev

Мне нужно всего лишь авторизоваться по oauth и забрать url, на который будет редирект.

Для этого браузер не нужен

annulen ★★★★★
()
Ответ на: комментарий от jdev

Набраться опыта на чем?На недокументированном случайном коде,АПИ которого завтра изменится и станет абсолютно несовместимым с тем что было...это не опыт это изучение филькиной грамоты на заборе.

я о том что-решай конкретные задачи,а не абсурдный бред чем ты щас собрался заниматься.

anonymous
()
Ответ на: комментарий от anonymous

Я хочу поиграться с этим API. Пока напишу клиент, разберусь на практике с парсерами json'а, oauth2 и с тем, что мне еще там встретится. Кажется, это и есть опыт, нет?

jdev
() автор топика
Ответ на: комментарий от jdev

Мне нужно всего лишь авторизоваться по oauth и забрать url, на который будет редирект. Если со встроенными браузерами все так грустно, то как бы вы поступили?

Ну если там совсем хитрочерезодноместовый oauth, который мало того, что не поддерживает безбраузерную авторизацию, так еще и POST-запросом не отправить реквест, то можно отправлять форму, используя HtmlUnit. А пользователю в любом из этих случаев выдавать самый обычный GUI-диалог авторизации.

Я сколько делал автосмотрелок за изменением чужих API - либо через POST-запрос, либо через HtmlUnit всегда работало.

Хотя HtmlUnit - это из пушки по колибри в вашем случае.

zhuravlik ★★★★
()
Последнее исправление: zhuravlik (всего исправлений: 1)
Ответ на: комментарий от jdev

Мне нужно всего лишь авторизоваться по oauth и забрать url, на который будет редирект.

Втентаклик? Тупо запускай браузер с нужным урлом, пусть пользователь скопипастит токен (или урл с токеном).

// Что-то мне подсказывает, что юзер у твоего приложения будет ровно один, поэтому не парься на счет удобства.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.