|
|
|
WebEngine. Как перехватить смену URL-а и закончить обработку?
|
|||
|---|---|---|---|
|
#18+
Делаю FXML с WebView и два класса. Один контроллер, другой - модель. Контроллер устанавливает в модели ссылку на WebEngine. В модели делаю перехват смены URL и если он сменился на какой-то определенный, то вытаскиваю из него токен (в примере я его пока не вытаскиваю, а хардкожу на kuku) и сохраняю в приватный атрибут. И есть функция, которая возвращает значение атрибута: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. И еще там же делаю метод, который загружает в WebEngine стартовый URL: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. в майне в методе start открываю окно с WebView и пытаюсь дождаться, когда достигну ожидаемого URL-а: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Если я цикл заскоментирую (как в примере)- то окно отрисовывается нормально. Если раскоментирую - то окно не отрисовывается. Но мне же он как бы нужен - это я жду пока URL внужный не будет достигнут. Я явно что-то делаю не так. Но что? Люблю галеры - работящий коллектив, романтика мужского труда. Стоишь на мостике в пене брызг и эдак поворотясь: - Голубчик! Утроить количество ударов - Али-паша уходит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2016, 01:42 |
|
||
|
WebEngine. Как перехватить смену URL-а и закончить обработку?
|
|||
|---|---|---|---|
|
#18+
Maxifly, Зачем это все? И откуда взялся токен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2016, 08:34 |
|
||
|
WebEngine. Как перехватить смену URL-а и закончить обработку?
|
|||
|---|---|---|---|
|
#18+
Petro123, я пробую написать логин приложения к вконтакту. Там надо открыть некую стартовую страницу, повводить логин пользователя и пароль, ответить на вопросы. В ответ произойдет редирект на заранее оговоренную страницу. В URL-е в QSV будет находится токен. Он нужен для дальнейшей работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2016, 10:31 |
|
||
|
WebEngine. Как перехватить смену URL-а и закончить обработку?
|
|||
|---|---|---|---|
|
#18+
Maxiflyя пробую написать логин приложения к вконтакту. Вот это надо расписать на абзац текста. Т.к. ничего не понял. MaxiflyТам надо открыть некую стартовую страницу, повводить логин пользователя и пароль, ответить на вопросы. У вас не работает, т.к. нужно чётко расписать все события. В движке эксплорера в десктопе нужно чётко расписать где команды из кода, а где вводит юзверь и где мы получаем события. Maxiflyв майне в методе start открываю окно с WebView и пытаюсь дождаться, когда достигну ожидаемого URL-а: Что значит достигну? - Если подписан на событие ввода побуквенного урла, то на каждый ввод символа проверяем урл. А функция Start должна пройти без всяких циклов и задержек. Стартанул, и жди события. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2016, 10:48 |
|
||
|
WebEngine. Как перехватить смену URL-а и закончить обработку?
|
|||
|---|---|---|---|
|
#18+
Maxifly, авторКак перехватить смену URL-а у движка есть событие когда загрузка страницы завершена. Ты наверно об этом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2016, 11:07 |
|
||
|
WebEngine. Как перехватить смену URL-а и закончить обработку?
|
|||
|---|---|---|---|
|
#18+
Petro123, Не об этом. Событие есть и я его перехватываю: см мой первый листинг с this.currentLocationProperty Вопрос в том, как мне вытащить то значение, что я перехватил из объекта, который за модель отвечает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2016, 12:36 |
|
||
|
WebEngine. Как перехватить смену URL-а и закончить обработку?
|
|||
|---|---|---|---|
|
#18+
убери из start sleep и while и напиши вопрос+код по новой. Т.к.: MaxiflyНо мне же он как бы нужен - это я жду пока URL внужный не будет достигнут. и MaxiflyВопрос в том, как мне вытащить то значение, что я перехватил из объекта, который за модель отвечает? мне лично непонятен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2016, 12:49 |
|
||
|
WebEngine. Как перехватить смену URL-а и закончить обработку?
|
|||
|---|---|---|---|
|
#18+
Petro123, про циклы в starte понял. А по непонятным вопросам сейчас поясню: Чтобы приложение работало во Вконтакт-е надо получить токен. Чтобы получить токен, надо открыть страницу по определенному URL-у (из вконтактовсой доки). То есть - это не моя страница - эо вконтакт мне ее генерит и отдает. В етом же URL-е в QS указывается на какую страницу вконтакт должен редирект сделать, когда авторизация пройдет (назовем ее "конечный URL"). Вконтакт не сразу делает редирект а погоняет пользователя еще по страничкам. Как редирект произойдет, то в URL-е будет токен. Его потом надо использовать для REST-запросов. Вот для этого весь сыр-бор. Эвент на смену URL-а я перехватываю, как только URL - конечный - я вынимаю из него токен и сохраняю его в модели. В javaFX ведь model view viewmodel pattern. Теперь остается вопрос. Как со стороны узнать, что в модели атрибут с токеном уже установлен? Я делал это циклически опрашивая атрибут, пока он не станет отличным от null. . Ну как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2016, 14:01 |
|
||
|
WebEngine. Как перехватить смену URL-а и закончить обработку?
|
|||
|---|---|---|---|
|
#18+
MaxiflyЯ делал это циклически опрашивая атрибут, пока он не станет отличным от null. можно на каждый реквест-запрос-конец_загрузки проверить есть ли токен. Если есть, написать красным: "Коннект установлен, авторизация пройдена". Т.е. брать события ОТ них, а не самому циклом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2016, 14:47 |
|
||
|
WebEngine. Как перехватить смену URL-а и закончить обработку?
|
|||
|---|---|---|---|
|
#18+
MaxiflyВ javaFX ведь model view viewmodel pattern. а вообще в веб - REST. Т.е. на каждый новый запрос или ответ проверять что либо по новой, т.к. тебя не помнят (без токена). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2016, 14:49 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2123845]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
68ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 360ms |

| 0 / 0 |
