mirror of
https://gitee.com/spark-store-project/spark-web-app-runtime.git
synced 2025-06-02 13:19:51 +08:00
fix: 修复部分网页无法正常跳转的问题
对于网页打开方式为新窗口打开的网页进行修复
This commit is contained in:
parent
f6542879de
commit
2f38b9dd76
@ -10,7 +10,7 @@
|
||||
#include <QDir>
|
||||
#include <QCloseEvent>
|
||||
|
||||
#include "webenginepage.h"
|
||||
#include "webengineview.h"
|
||||
|
||||
MainWindow::MainWindow(QString szTitle,
|
||||
QString szUrl,
|
||||
|
@ -1,4 +1,4 @@
|
||||
QT += core gui webengine webenginewidgets svg concurrent
|
||||
QT += core gui webenginewidgets svg concurrent
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 5): QT += widgets
|
||||
|
||||
@ -9,20 +9,20 @@ DEFINES += QT_DEPRECATED_WARNINGS
|
||||
CONFIG += c++11 link_pkgconfig
|
||||
PKGCONFIG += dtkwidget
|
||||
|
||||
HEADERS += \
|
||||
mainwindow.h \
|
||||
globaldefine.h \
|
||||
httpd.h \
|
||||
httplib.h \
|
||||
webenginepage.h \
|
||||
widget.h
|
||||
HEADERS += \
|
||||
mainwindow.h \
|
||||
globaldefine.h \
|
||||
httpd.h \
|
||||
httplib.h \
|
||||
widget.h \
|
||||
webengineview.h
|
||||
|
||||
SOURCES += \
|
||||
main.cpp \
|
||||
httpd.cpp \
|
||||
mainwindow.cpp \
|
||||
webenginepage.cpp \
|
||||
widget.cpp
|
||||
widget.cpp \
|
||||
webengineview.cpp
|
||||
|
||||
RESOURCES += \
|
||||
imgs.qrc
|
||||
|
@ -1,20 +0,0 @@
|
||||
#include "webenginepage.h"
|
||||
|
||||
WebEnginePage::WebEnginePage(QObject *parent)
|
||||
: QWebEnginePage(parent)
|
||||
{
|
||||
}
|
||||
|
||||
QWebEnginePage *WebEnginePage::createWindow(QWebEnginePage::WebWindowType type)
|
||||
{
|
||||
Q_UNUSED(type)
|
||||
WebEnginePage *page = new WebEnginePage;
|
||||
connect(page, &QWebEnginePage::urlChanged, this, &WebEnginePage::on_urlChanged);
|
||||
return page;
|
||||
}
|
||||
|
||||
void WebEnginePage::on_urlChanged(const QUrl url)
|
||||
{
|
||||
setUrl(url);
|
||||
sender()->deleteLater();
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
#ifndef WEBENGINEPAGE_H
|
||||
#define WEBENGINEPAGE_H
|
||||
|
||||
#include <QWebEnginePage>
|
||||
#include <QWebEngineProfile>
|
||||
#include <QObject>
|
||||
|
||||
class WebEnginePage : public QWebEnginePage
|
||||
{
|
||||
public:
|
||||
WebEnginePage(QObject *parent = nullptr);
|
||||
|
||||
protected:
|
||||
QWebEnginePage *createWindow(WebWindowType type) override;
|
||||
|
||||
private slots:
|
||||
void on_urlChanged(const QUrl url);
|
||||
|
||||
};
|
||||
|
||||
#endif // WEBENGINEPAGE_H
|
23
spark-webapp-runtime/webengineview.cpp
Normal file
23
spark-webapp-runtime/webengineview.cpp
Normal file
@ -0,0 +1,23 @@
|
||||
#include "webengineview.h"
|
||||
|
||||
WebEngineView::WebEngineView(QWidget *parent)
|
||||
: QWebEngineView(parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QWebEngineView *WebEngineView::createWindow(QWebEnginePage::WebWindowType type)
|
||||
{
|
||||
Q_UNUSED(type)
|
||||
|
||||
QWebEngineView *view = new QWebEngineView;
|
||||
connect(view, &QWebEngineView::urlChanged, this, &WebEngineView::on_urlChanged);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
void WebEngineView::on_urlChanged(QUrl url)
|
||||
{
|
||||
setUrl(url);
|
||||
sender()->deleteLater();
|
||||
}
|
21
spark-webapp-runtime/webengineview.h
Normal file
21
spark-webapp-runtime/webengineview.h
Normal file
@ -0,0 +1,21 @@
|
||||
#ifndef WEBENGINEVIEW_H
|
||||
#define WEBENGINEVIEW_H
|
||||
|
||||
#include <QWebEngineView>
|
||||
|
||||
class WebEngineView : public QWebEngineView
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit WebEngineView(QWidget *parent = nullptr);
|
||||
|
||||
protected:
|
||||
QWebEngineView *createWindow(QWebEnginePage::WebWindowType type) override;
|
||||
|
||||
private slots:
|
||||
void on_urlChanged(QUrl url);
|
||||
|
||||
};
|
||||
|
||||
#endif // WEBENGINEVIEW_H
|
@ -2,7 +2,7 @@
|
||||
|
||||
Widget::Widget(QString szUrl, QWidget *parent)
|
||||
: QWidget(parent)
|
||||
, m_webEngineView(new QWebEngineView)
|
||||
, m_webEngineView(new WebEngineView)
|
||||
, m_szUrl(szUrl)
|
||||
, m_spinner(new DSpinner)
|
||||
, main(new QHBoxLayout)
|
||||
@ -16,7 +16,7 @@ Widget::Widget(QString szUrl, QWidget *parent)
|
||||
m_webEngineView->setAutoFillBackground(false);
|
||||
m_webEngineView->setZoomFactor(1);
|
||||
|
||||
WebEnginePage *page = new WebEnginePage;
|
||||
QWebEnginePage *page = new QWebEnginePage;
|
||||
m_webEngineView->setPage(page);
|
||||
|
||||
m_webEngineView->setUrl(QUrl(nullptr));
|
||||
|
@ -2,12 +2,13 @@
|
||||
#define WIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QWebEngineProfile>
|
||||
#include <QWebEngineView>
|
||||
#include <QLayout>
|
||||
|
||||
#include <DSpinner>
|
||||
|
||||
#include "webenginepage.h"
|
||||
#include "webengineview.h"
|
||||
|
||||
DWIDGET_USE_NAMESPACE
|
||||
|
||||
@ -25,7 +26,7 @@ public:
|
||||
void refresh();
|
||||
|
||||
private:
|
||||
QWebEngineView *m_webEngineView;
|
||||
WebEngineView *m_webEngineView;
|
||||
QString m_szUrl;
|
||||
DSpinner *m_spinner;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user