在 qt5.8 网络引擎中更改浏览器名称

Changing browser name in qt5.8 webengine

本文关键字:浏览器 qt5 网络 引擎      更新时间:2023-10-16

我想使用 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 .我应该如何更改它,以便我的浏览器名称被标识为"我的网络浏览器"而不是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;
        }
    };

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