Название: [Решено] Открытие ссылки в новом QWebView Отправлено: IGreench от Декабрь 19, 2012, 23:07 Доброе время суток!
Пишу специализированный браузер для сайта, чтобы было что-то типа дестктопной версии. С linkClicked(QUrl url) всё понятно. Переопределил метод, и вызываю при особых условиях load(url). А вот, что делать с urlChanged(QUrl url)? Как переопределить метод (и какой метод) для запрета загрузки некоторых url? Поискал, ничего не нашёл, где обошлось бы без особого шаманства с QNetwork... Решение: Завязываем changed на слот, в котором пишем аля Код: if (!siteName.contains("prog.org.ru")) UPD: пока что временно нашёл, как обойти эту проблему. Но возникла новая... Задача: есть два qwebview, на одном я захожу на сайт, авторизуюсь, работаю. Но определённые ссылки нужно открыть на втором qwebview. А так как параметры сессии отсутствуют у него, то не получается нужного результата. Как передать параметры сессии, не нашёл, есть идея - передовать post запросом параметры сессии, но это как то неправильно, и пока я не знаю, насколько это возможно сделать. Еще ковырялся с qwebpage, но смог только перенести состояние с первого qwebview на второй, с блокировкой первого. Решение: Как-то так. Код
2SimpleSunny Спасибо! написал Код: webView_2->page()->networkAccessManager()->setCookieJar(webView->page()->networkAccessManager()->cookieJar()); UPD: Всем привет! Возвращаюсь ко своим баранам. Этот способ: Завязываем changed на слот, в котором пишем аля не работает так, как нужно. Нужно чтобы, первый webView не проходил по ссылке.Код: if (!siteName.contains("prog.org.ru")) Я сделал две QWebPage. Работая с первой webPage, я перехватываю в urlChanged и linkClicked нужную ссылку и делаю setPage() от неё во второй webView. Но я не знаю, как отлавливать input'ы от второго webView (mouseEvents хотя бы) и применять непосредственно к этой webPage. Решение: в хедере: Код: static QWebPage *page1; в событиях urlChanged и linkClicked при нужной ссылке: Код: page2->networkAccessManager()->setCookieJar(page1->networkAccessManager()->cookieJar()); Название: Re: Открытие ссылки в новом QWebView Отправлено: IGreench от Декабрь 21, 2012, 12:51 Помогите пожалуйста! Очень очень надо...
Название: Re: Открытие ссылки в новом QWebView Отправлено: Bepec от Декабрь 21, 2012, 13:15 Завязываем changed на слот, в котором пишем аля
Код: if (!siteName.contains("prog.org.ru")) Название: Re: Открытие ссылки в новом QWebView Отправлено: IGreench от Декабрь 21, 2012, 14:08 Спасибо! Всё работает!
А можете подсказать, касательно клика по ссылке в одном qweview и её открытия в другом qwebview с настройками первого? Название: Re: Открытие ссылки в новом QWebView Отправлено: Bepec от Декабрь 21, 2012, 14:17 ХЗ о каких настройках вы говорите. Если о сетевых, можно применить QNetworkSetting от первого на второй. Хотя мб я и ошибаюсь и они глобальные.
Название: Re: Открытие ссылки в новом QWebView Отправлено: IGreench от Декабрь 21, 2012, 19:42 На сайте пользователь авторизуется с помощью сессии (я про $_SESSION[]). Но другой qwebview же не знает, что это за сессия...
Название: Re: Открытие ссылки в новом QWebView Отправлено: Bepec от Декабрь 21, 2012, 19:58 Я не силён в internet технологиях, но эта сессия являет собой что? Кеш?
Название: Re: Открытие ссылки в новом QWebView Отправлено: IGreench от Декабрь 21, 2012, 20:26 я тоже не силён, но я знаю что это что-то типа куков)
Название: Re: Открытие ссылки в новом QWebView Отправлено: SimpleSunny от Декабрь 21, 2012, 20:53 Как-то так.
Код
Название: Re: Открытие ссылки в новом QWebView Отправлено: IGreench от Декабрь 21, 2012, 21:39 2SimpleSunny Спасибо!
написал Код: ui->webView_2->page()->networkAccessManager()->setCookieJar(ui->webView->page()->networkAccessManager()->cookieJar()); Так и знал, что всё примерно так просто. Спасибо всем откликнувшимся! Название: Re: Открытие ссылки в новом QWebView Отправлено: IGreench от Март 09, 2013, 23:15 Всем привет!
Возвращаюсь ко своим баранам. Этот способ: Завязываем changed на слот, в котором пишем аля не работает так, как нужно. Нужно чтобы, первый webView не проходил по ссылке.Код: if (!siteName.contains("prog.org.ru")) Я сделал две QWebPage. Работая с первой webPage, я перехватываю в urlChanged и linkClicked нужную ссылку и делаю setPage() от неё во второй webView. Но я не знаю, как отлавливать input'ы от второго webView (mouseEvents хотя бы) и применять непосредственно к этой webPage. Буду рад любой помощи :) Зараннее спасибо Название: Re: Открытие ссылки в новом QWebView Отправлено: Bepec от Март 09, 2013, 23:18 Класс менеджер тебе нужен по ходу, хотя мысль твоя не совсем мне ясна в час ночи :D
Название: Re: Открытие ссылки в новом QWebView Отправлено: IGreench от Март 10, 2013, 00:20 А что за класс менеджер?)
Всё... мне спать пора) сделал qwebpage'ы статик и всё заработало. ура! =) |