Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Portuguese
  4. [Resolvido] Requisições no QWebView
Forum Updated to NodeBB v4.3 + New Features

[Resolvido] Requisições no QWebView

Scheduled Pinned Locked Moved Portuguese
4 Posts 2 Posters 1.7k 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.
  • B Offline
    B Offline
    brcontainer
    wrote on last edited by
    #1

    No Google Chrome (Firefox e IE funcionam igual ao Chrome) quando ocorre um erro em uma requisição, ele tenta uma nova requisição, veja o LOG do wireshark:

    !http://i.stack.imgur.com/qy0jL.png(wireshark log)!

    No WebInspector aparece apenas uma requisição, em outras palavras: parece um sistema de prevenção contra perda de conexão na requisição (provavelmente deve ter um numero de tentativas ou por tempo).

    Estou desenvolvendo um navegador completo em QT e ao realizar testes de falhas, como o exemplo do Chrome acima, eu percebi que o "QWebView" não trabalha igual ao Google Chrome.

    Eu gostaria de fazer o meu navegador funcionar igual aos navegadores convencionais, como faço para reimplementar QNetWorkRequest/QNetWorkAccessManager para que funcione tal como Chrome, Firefox, InternetExplorer?

    Por favor me ajude.

    @myWebPage *myWP = new myWebPage();
    myWP->setForwardUnsupportedContent(true);
    myWP->setNetworkAccessManager(m_network);
    ui->myWebView->setPage(myWP);

    if(q!=true) {
    settings = QWebSettings::globalSettings();

    settings->setAttribute( QWebSettings::OfflineWebApplicationCacheEnabled,true );
    settings->setAttribute( QWebSettings::LocalContentCanAccessRemoteUrls,true );
    settings->setAttribute( QWebSettings::OfflineStorageDatabaseEnabled,true );
    settings->setAttribute( QWebSettings::LocalContentCanAccessFileUrls,true );
    settings->setAttribute( QWebSettings::LocalStorageEnabled,true );
    settings->setAttribute( QWebSettings::JavascriptCanOpenWindows,true );
    settings->setAttribute( QWebSettings::JavascriptCanCloseWindows,true );
    settings->setAttribute( QWebSettings::JavascriptEnabled,true );
    
    settings->setAttribute( QWebSettings::PluginsEnabled,true );
    settings->setAttribute( QWebSettings::JavaEnabled,false );//Desabilita java
    settings->setAttribute( QWebSettings::DeveloperExtrasEnabled,true );
    settings->setAttribute( QWebSettings::AutoLoadImages, true );
    
    
    settings->setAttribute( QWebSettings::DnsPrefetchEnabled, true );
    settings->setAttribute( QWebSettings::LocalStorageDatabaseEnabled, true );
    settings->setAttribute( QWebSettings::AcceleratedCompositingEnabled, true );
    settings->setAttribute( QWebSettings::JavascriptCanAccessClipboard, false );
    settings->setAttribute( QWebSettings::ScrollAnimatorEnabled, true );
    
    settings->setAttribute( QWebSettings::PrintElementBackgrounds, false );
    
    settings->setOfflineWebApplicationCachePath( QString(localStorage+"/appcache") );
    settings->enablePersistentStorage( QString(localStorage+"/persistent") );
    settings->setOfflineStoragePath( QString(localStorage+"/offlinestorage") );
    settings->setLocalStoragePath( QString(localStorage+"/storage") );
    settings->setIconDatabasePath( QString(localStorage+"/icons") );
    
    settings->setMaximumPagesInCache( 99999 );
    settings->setObjectCacheCapacities( 0,99999,99999 );
    
    settings->setOfflineWebApplicationCacheQuota( 5*1024*1024 );
    settings->setOfflineStorageDefaultQuota( 5*1024*1024 );
    

    }
    connect(ui->myWebView->page(), SIGNAL(downloadRequested(QNetworkRequest)), this, SLOT(Download(QNetworkRequest)));
    connect(ui->myWebView->page(), SIGNAL(unsupportedContent(QNetworkReply*)), this, SLOT(unsupportedToDownload(QNetworkReply*)));
    connect(ui->myWebView->page(), SIGNAL(printRequested(QWebFrame*)), this, SLOT(printFrame(QWebFrame*)));@

    QT project: https://github.com/brcontainer/qt-helper

    1 Reply Last reply
    0
    • R Offline
      R Offline
      Rodrigocg
      wrote on last edited by
      #2

      Nao sei se vai ajudar... eu tava olhando a documentaçao e vi que o QWebView tem um metodo chamado page() que retorna qwebpage(), e na classe QWebpage tem outro metodo que retorna um NetworkAccessManager que gerencia a conexao da pagina....

      voce pode criar uma classe, que herda de um qwebview, nela vc vai reimplementar o que quizer...

      acredito que vc ja deva ter feito muito codigo, entao voce pode promover a classe QWebView do seu codigo pela classe nova...

      La no modo design clicando com o botao direito no qwebview tem um opçao chamada "promote to...", tente usar ela para promover...

      Na classe que foi herda de de um QWebView voce verifica se o qwebview emitiu um signal de loadStarted() e pega a page que esta sendo carregada e cria uma thread para ficar fazendo o que vc quer...

      1 Reply Last reply
      0
      • R Offline
        R Offline
        Rodrigocg
        wrote on last edited by
        #3

        Sevc souber, voce sabe como que faz para o qwebview carregar uma pagina que usa o flash player?

        1 Reply Last reply
        0
        • B Offline
          B Offline
          brcontainer
          wrote on last edited by
          #4

          Solução http://stackoverflow.com/a/17915208/1518921

          bq. Off-topic: Rodrigocg no Windows acredito que basta
          @QWebSettings::globalSettings()->setAttribute( QWebSettings::PluginsEnabled, true);@
          e ter o plugin do flash instalado (plugin do Mozilla e Safari).

          QT project: https://github.com/brcontainer/qt-helper

          1 Reply Last reply
          0

          • Login

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