mirror of
https://gitee.com/spark-store-project/spark-web-app-runtime.git
synced 2025-08-21 03:42:23 +08:00
使用 DApplication::setSingleInstance,使用 标题_uid 创建进程锁,单例运行时新进程自动退出,并拉起原有进程主窗口显示;重写 QWebEnginePage,createWindow 时若链接与原来不同,则调用浏览器打开 Log: 支持单例运行;支持浏览器打开外部链接;修复访问深度论坛默认语言错误问题
45 lines
875 B
C++
45 lines
875 B
C++
#include "webenginepage.h"
|
|
|
|
#include <QDesktopServices>
|
|
|
|
WebEnginePage::WebEnginePage(QObject *parent)
|
|
: QWebEnginePage(parent)
|
|
{
|
|
}
|
|
|
|
WebEnginePage::~WebEnginePage()
|
|
{
|
|
}
|
|
|
|
void WebEnginePage::setUrl(const QUrl &url)
|
|
{
|
|
if (m_currentUrl == url) {
|
|
return;
|
|
}
|
|
|
|
m_currentUrl = url;
|
|
QWebEnginePage::setUrl(url);
|
|
}
|
|
|
|
QWebEnginePage *WebEnginePage::createWindow(QWebEnginePage::WebWindowType type)
|
|
{
|
|
qDebug() << Q_FUNC_INFO << type;
|
|
|
|
WebEnginePage *page = new WebEnginePage(parent());
|
|
connect(page, &WebEnginePage::urlChanged, this, &WebEnginePage::slotUrlChanged);
|
|
return page;
|
|
}
|
|
|
|
void WebEnginePage::slotUrlChanged(const QUrl &url)
|
|
{
|
|
if (m_currentUrl == url) {
|
|
sender()->deleteLater();
|
|
return;
|
|
}
|
|
|
|
qDebug() << Q_FUNC_INFO << m_currentUrl << url;
|
|
|
|
QDesktopServices::openUrl(url);
|
|
sender()->deleteLater();
|
|
}
|