Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Webview user agent
Forum Updated to NodeBB v4.3 + New Features

Webview user agent

Scheduled Pinned Locked Moved Mobile and Embedded
2 Posts 2 Posters 2.6k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D Offline
    D Offline
    daljit97
    wrote on 20 Apr 2012, 17:19 last edited by
    #1

    Hello, I want to change the user agent of webview in qml, i found this link (https://bugreports.qt-project.org//browse/QTBUG-19259) where is showed how to do this step by step. I've created the files below,but i don't understand where i have to insert th user agent string.

    USERAGENTPROVIDER.cpp

    @#include "useragentprovider.h"

    UserAgentProvider::UserAgentProvider(QWidget *parent) :
    QWebPage(parent)
    {
    }

    QString UserAgentProvider::getUserAgent()
    {
    return userAgentForUrl(QUrl(""));
    }@

    CUSTOMNETWORKACCESSMANAGER.cpp

    @#include "customnetworkaccessmanager.h"
    #include "useragentprovider.h"
    #include <QNetworkReply>

    CustomNetworkAccessManager::CustomNetworkAccessManager(QString p_userAgent, QObject *parent) :
    QNetworkAccessManager(parent), __userAgent(p_userAgent)
    {
    }

    QNetworkReply *CustomNetworkAccessManager::createRequest( Operation op,
    const QNetworkRequest &req,
    QIODevice * outgoingData )
    {
    QNetworkRequest new_req(req);
    new_req.setRawHeader("User-Agent", __userAgent.toAscii());

    QNetworkReply *reply = QNetworkAccessManager::createRequest( op, new_req, outgoingData );
    return reply;
    

    }
    @

    networkaccessmanagerfactory.cpp

    @#include "networkaccessmanagerfactory.h"
    #include "customnetworkaccessmanager.h"

    NetworkAccessManagerFactory::NetworkAccessManagerFactory(QString p_userAgent) : QDeclarativeNetworkAccessManagerFactory(), __userAgent(p_userAgent)
    {
    }

    QNetworkAccessManager* NetworkAccessManagerFactory::create(QObject* parent)
    {
    CustomNetworkAccessManager* manager = new CustomNetworkAccessManager(__userAgent, parent);
    return manager;
    }@

    main.cpp
    @#include <QtGui/QApplication>
    #include "qmlapplicationviewer.h"
    #include "networkaccessmanagerfactory.h"
    #include <QtDeclarative>
    #include "useragentprovider.h"

    int main(int argc, char *argv[])
    {
    QApplication app(argc, argv);

    QmlApplicationViewer viewer;
    
    // Set custom NetworkAccessManagerFactory object in QDeclarative context
    UserAgentProvider p;
    QString userAgent = p.getUserAgent();
    
    NetworkAccessManagerFactory factory(userAgent);
    viewer.engine()->setNetworkAccessManagerFactory(&factory);
    
    viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
    viewer.setMainQmlFile(QLatin1String("qml/NetworkOverload/main.qml"&#41;&#41;;
    viewer.showExpanded(&#41;;
    
    return app.exec(&#41;;
    

    }@

    1 Reply Last reply
    0
    • K Offline
      K Offline
      koahnig
      wrote on 20 Apr 2012, 17:33 last edited by
      #2

      please use "code wrappings":http://qt-project.org/wiki/ForumHelp#e3f82045ad0f480d3fb9e0ac2d58fb01

      Vote the answer(s) that helped you to solve your issue(s)

      1 Reply Last reply
      0

      1/2

      20 Apr 2012, 17:19

      • Login

      • Login or register to search.
      1 out of 2
      • First post
        1/2
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved