Russian Qt Forum
Ноябрь 23, 2024, 22:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Авторизация вконтакте  (Прочитано 6691 раз)
qt_user
Гость
« : Ноябрь 01, 2011, 19:56 »

Добрый вечер,
Мне необходимо авторизоваться вконтакте, только не через http://vkontakte.ru/login.php, а через
скромный маленький виджет http://vkontakte.ru/developers.php?oid=-1&p=Auth
создал файл index.html который выглядит так:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">
<head>
<script type="text/javascript" src="http://userapi.com/js/api/openapi.js?34"></script>
</head>
<body>
<script type="text/javascript">
  VK.init({apiId: 111});
</script>
<div id="vk_auth"></div>
<script type="text/javascript">
VK.Widgets.Auth("vk_auth", {width: "300px", authUrl: '/developers.php?o=-1&p=Auth'});
</script>
</body>
</html>

далее этот файл открыл считал и отобразил в QWebView, в итоге получилось то что на картинке:


но в отличии от обычного браузера (IE например) кнопка не работает,
Вопрос: как сделать чтобы кнопка "заработала" и как на нее нажать програмно
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #1 : Ноябрь 01, 2011, 20:29 »

А у тебя скрипты в QWebView разрешены ? ну и на всякий случай flash-плагины ?
Записан
qt_user
Гость
« Ответ #2 : Ноябрь 01, 2011, 20:33 »

А у тебя скрипты в QWebView разрешены ? ну и на всякий случай flash-плагины ?
извиняюсь за глупый вопрос - а как их разрешить скрипты и флешки?
Записан
qt_user
Гость
« Ответ #3 : Ноябрь 01, 2011, 21:01 »

вот добавил атрибуты:
Код:
settings()->setAttribute(QWebSettings::JavascriptEnabled, true);
settings()->setAttribute(QWebSettings::JavaEnabled, true);
settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);
settings()->setAttribute(QWebSettings::PluginsEnabled, true);

всеравно не открывает ничего, в чем может быть проблема?
Записан
ufna
Гость
« Ответ #4 : Ноябрь 01, 2011, 21:09 »

а браузер из QtDemo открывает?
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #5 : Ноябрь 01, 2011, 21:14 »

Флешки\скрипты разрешить вот так

ui->webView->settings()->setAttribute(QWebSettings::JavascriptEnabled,true);
ui->webView->settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows,true);
ui->webView->settings()->setAttribute(QWebSettings::JavaEnabled,true);
ui->webView->settings()->setAttribute(QWebSettings::PluginsEnabled,true);

Браузер из демок открывает. Тоже решил попробовать, просто так QWebView его открывать не хочет, и полез в браузер смотреть что он там колдует Улыбающийся
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #6 : Ноябрь 01, 2011, 21:45 »

Посмотри пример браузера в QtDemo. Насколько понял все волшебство в ф-ции WebPage::acceptNavigationRequest в файлике webview.cpp . Тебе нужно будет создать потомок от QWebPage и там рулить этой ф-цией.
Записан
qt_user
Гость
« Ответ #7 : Ноябрь 01, 2011, 22:00 »

Посмотри пример браузера в QtDemo. Насколько понял все волшебство в ф-ции WebPage::acceptNavigationRequest в файлике webview.cpp . Тебе нужно будет создать потомок от QWebPage и там рулить этой ф-цией.
это какой Fancy Browser?
или где находятся QtDemo?
Записан
alexman
Гость
« Ответ #8 : Ноябрь 01, 2011, 22:35 »

Пробовал bool QWebPage::event ( QEvent * ev ) [virtual] c нужным эвентом?
Записан
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #9 : Ноябрь 02, 2011, 08:17 »

это какой Fancy Browser?
или где находятся QtDemo?

У меня лежит по пути c:\Qt\4.7.3\demos\browser\
Обычно в папке с Qt папка demos - демки, examples -примеры
Записан
qt_user
Гость
« Ответ #10 : Ноябрь 04, 2011, 14:22 »

Короче дело не в WebPage::acceptNavigationRequest вся соль в QWebPage *QWebPage::createWindow(QWebPage::WebWindowType type)
в этой ф-ции надо создать новое окно внутри которого QWebView  и вернуть указатель на новый QWebPage.
Неправда как-то магически? пример взял с демки браузера
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.051 секунд. Запросов: 23.