Vous savez probablement que quand une instance de QWebview a terminé de charger la page en cours, vous pouvez simplement vous connecter à son signal loadFinished(), comme ceci :
connect(ui->webView, SIGNAL(loadFinished(bool)), this, SLOT(vLoadFinished(bool)));
Mais ce que je ne savais pas il n’y a pas si longtemps de cela, c’est que vous pouvez vous connecter avec le “network access manager” (Gestionnaire d’accès réseau) de l’instance du QWebview.
Vous pouvez donc savoir tout ce que votre Webview télécharge (les images, par exemple), et plus important encore, les requêtes qui sont faites APRÈS que le page soit chargée, causée par javascript par exemple.
Pour se faire, vous pouvez connecter le QNetworkAccessManager de votre QWebview, dans votre constructeur :
QNetworkAccessManager _Mgr;
_Mgr = webView->page()->networkAccessManager();connect(_Mgr, SIGNAL(finished(QNetworkReply*)), this, SLOT(vFinished(QNetworkReply*)));
et ensuite implémenter le slot que vous venez tout juste de créer !
YourWidgetClass::vFinished(QNetworkReply*)
{
reply->request()->url();
}