zty199 faa613d671 feat: ISSUE #I62BVT 添加网页通知功能
WebEngineView 中添加 WebEngineView::present(std::unique_ptr<QWebEngineNotification> &newNotification) 函数,通过 DNotifySender 转发系统通知

Log: 添加网页通知功能,通知图片缓存在 /tmp 下;使用 DLogManager 生成日志;修复强制使用 DTK 平台插件异常问题
2022-12-19 09:31:32 +08:00

52 lines
1.2 KiB
C++

#include "webenginepage.h"
#include <QDesktopServices>
WebEnginePage::WebEnginePage(QObject *parent)
: QWebEnginePage(parent)
{
connect(this, &QWebEnginePage::featurePermissionRequested, [&](const QUrl &origin, QWebEnginePage::Feature feature) {
if (feature != QWebEnginePage::Notifications) {
return;
}
setFeaturePermission(origin, feature, QWebEnginePage::PermissionGrantedByUser);
});
}
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();
}