mirror of
https://gitee.com/spark-store-project/spark-web-app-runtime.git
synced 2025-07-05 05:06:01 +08:00
fix: 修复部分网页无法正常跳转的问题
对于网页打开方式为新窗口打开的网页进行修复
This commit is contained in:
parent
f6542879de
commit
2f38b9dd76
@ -10,7 +10,7 @@
|
|||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QCloseEvent>
|
#include <QCloseEvent>
|
||||||
|
|
||||||
#include "webenginepage.h"
|
#include "webengineview.h"
|
||||||
|
|
||||||
MainWindow::MainWindow(QString szTitle,
|
MainWindow::MainWindow(QString szTitle,
|
||||||
QString szUrl,
|
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
|
greaterThan(QT_MAJOR_VERSION, 5): QT += widgets
|
||||||
|
|
||||||
@ -9,20 +9,20 @@ DEFINES += QT_DEPRECATED_WARNINGS
|
|||||||
CONFIG += c++11 link_pkgconfig
|
CONFIG += c++11 link_pkgconfig
|
||||||
PKGCONFIG += dtkwidget
|
PKGCONFIG += dtkwidget
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
mainwindow.h \
|
mainwindow.h \
|
||||||
globaldefine.h \
|
globaldefine.h \
|
||||||
httpd.h \
|
httpd.h \
|
||||||
httplib.h \
|
httplib.h \
|
||||||
webenginepage.h \
|
widget.h \
|
||||||
widget.h
|
webengineview.h
|
||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
main.cpp \
|
main.cpp \
|
||||||
httpd.cpp \
|
httpd.cpp \
|
||||||
mainwindow.cpp \
|
mainwindow.cpp \
|
||||||
webenginepage.cpp \
|
widget.cpp \
|
||||||
widget.cpp
|
webengineview.cpp
|
||||||
|
|
||||||
RESOURCES += \
|
RESOURCES += \
|
||||||
imgs.qrc
|
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)
|
Widget::Widget(QString szUrl, QWidget *parent)
|
||||||
: QWidget(parent)
|
: QWidget(parent)
|
||||||
, m_webEngineView(new QWebEngineView)
|
, m_webEngineView(new WebEngineView)
|
||||||
, m_szUrl(szUrl)
|
, m_szUrl(szUrl)
|
||||||
, m_spinner(new DSpinner)
|
, m_spinner(new DSpinner)
|
||||||
, main(new QHBoxLayout)
|
, main(new QHBoxLayout)
|
||||||
@ -16,7 +16,7 @@ Widget::Widget(QString szUrl, QWidget *parent)
|
|||||||
m_webEngineView->setAutoFillBackground(false);
|
m_webEngineView->setAutoFillBackground(false);
|
||||||
m_webEngineView->setZoomFactor(1);
|
m_webEngineView->setZoomFactor(1);
|
||||||
|
|
||||||
WebEnginePage *page = new WebEnginePage;
|
QWebEnginePage *page = new QWebEnginePage;
|
||||||
m_webEngineView->setPage(page);
|
m_webEngineView->setPage(page);
|
||||||
|
|
||||||
m_webEngineView->setUrl(QUrl(nullptr));
|
m_webEngineView->setUrl(QUrl(nullptr));
|
||||||
|
@ -2,12 +2,13 @@
|
|||||||
#define WIDGET_H
|
#define WIDGET_H
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
#include <QWebEngineProfile>
|
||||||
#include <QWebEngineView>
|
#include <QWebEngineView>
|
||||||
#include <QLayout>
|
#include <QLayout>
|
||||||
|
|
||||||
#include <DSpinner>
|
#include <DSpinner>
|
||||||
|
|
||||||
#include "webenginepage.h"
|
#include "webengineview.h"
|
||||||
|
|
||||||
DWIDGET_USE_NAMESPACE
|
DWIDGET_USE_NAMESPACE
|
||||||
|
|
||||||
@ -25,7 +26,7 @@ public:
|
|||||||
void refresh();
|
void refresh();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QWebEngineView *m_webEngineView;
|
WebEngineView *m_webEngineView;
|
||||||
QString m_szUrl;
|
QString m_szUrl;
|
||||||
DSpinner *m_spinner;
|
DSpinner *m_spinner;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user