【问题标题】:Changing browser name in qt5.8 webengine在 qt5.8 webengine 中更改浏览器名称
【发布时间】:2017-03-27 04:17:55
【问题描述】:

我想使用 http 用户代理将我在 qt5.8 中制作的网络浏览器命名为一些自定义名称,例如“我的网络浏览器”。我当前的用户代理是 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.8.0 Chrome/53.0.2785.148 Safari/537.36。我应该如何更改它,以便将我的浏览器名称标识为“我的 WebBrowser”而不是 Qt5.8.0 或 Chrome53。

    class WebView:public QObject{
        void acceptFullScreen(QWebEngineFullScreenRequest request){
            request.accept();
        }

    public:
        char* home_page;
        QWebEngineView* view=new QWebEngineView();
        WebView(char* page=(char*)"https://google.com"){
            this->home_page=page;
            createWebView();
            this->view->settings()->setAttribute(QWebEngineSettings::FullScreenSupportEnabled,true);
            connect(this->view->page(),&QWebEnginePage::fullScreenRequested,this,&WebView::acceptFullScreen);
            this->view->page()->profile()->setHttpUserAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) QtWebEngine/5.8.0 MyBrowser/1.0 Chrome/53.0.2785.148 Safari/537.36");
        }
        void createWebView(){
            this->view->load(QUrl(this->home_page));
        }
        QWebEngineView* returnView(){
            return this->view;
        }
        void home(){
            this->view->load(QUrl(this->home_page));
        }
        void spinnerStarted(){
            QWidget* widget=(QWidget*)this->view->parent();
            QTabWidget* tabwidget=(QTabWidget*)widget->parent();
            std::cout<<tabwidget<<std::endl;
        }
    };

【问题讨论】:

    标签: c++ qt http-headers user-agent


    【解决方案1】:

    您可以使用QWebEngineProfile::setHttpUserAgent 设置自定义用户代理。

    【讨论】:

    • 我用过这个名字,但名字仍然出现在Qt5.8.0
    • 我猜你必须使用QWebEngineProfile::defaultProfile()-&gt;setHttpUserAgent("my web browser");,确定你是否可以从其他地方获得QWebEngineProfile
    • 如果你这样设置页面的用户代理它不起作用?我希望您实际上将用户代理设置为其他内容,而不是像您的代码显示默认值一样:D
    • 如果我只写“我的浏览器”,那么它被检测为“未知”,我发现 qupzilla 的用户代理为“mozilla/5.0 (x11; linux x86_64) applewebkit/538.1 (khtml, like gecko ) qupzilla/1.8.9 safari/538.1" 我只想将我的 QtWebEngineView 重命名为一些自定义名称
    • 好吧,显示为用户代理的内容取决于您读取数据的方式(我猜您让某些网站完成这项工作,而那些可能不会将您的自定义文本检测为已知浏览器,如果您看看其他浏览器的用户代理,他们通常也会发送很多不相关的其他浏览器引擎),但通常你可以使用你想要的任何东西。顺便说一句,我注意到您在开始加载页面后设置了用户代理,这可能不太好,请在调用 load 或自定义函数 createWebView 等之前设置所有设置。这可能会解决一些奇怪的问题。
    猜你喜欢
    • 2012-01-30
    • 1970-01-01
    • 2012-11-20
    • 2019-04-30
    • 2012-07-06
    • 1970-01-01
    • 2011-03-02
    • 2016-01-07
    • 1970-01-01
    相关资源
    最近更新 更多