From 02d110c76daec193b03610e70385a9458813e508 Mon Sep 17 00:00:00 2001 From: trafalgar Date: Sun, 18 Aug 2024 20:47:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=B4=E9=9C=B2=E5=87=BA=20onJsDialog=20?= =?UTF-8?q?=E5=88=B0QCefView=20=E4=B8=AD=EF=BC=8C=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E7=BB=A7=E6=89=BF=E9=87=8D=E5=86=99=20alert=20confirm=20prompt?= =?UTF-8?q?=20=E6=8F=90=E7=A4=BA=E6=A1=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CCefClientDelegate_JSDialogHandler.cpp | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/details/CCefClientDelegate_JSDialogHandler.cpp diff --git a/src/details/CCefClientDelegate_JSDialogHandler.cpp b/src/details/CCefClientDelegate_JSDialogHandler.cpp new file mode 100644 index 00000000..16def437 --- /dev/null +++ b/src/details/CCefClientDelegate_JSDialogHandler.cpp @@ -0,0 +1,37 @@ +#include "CCefClientDelegate.h" + +#include +#include +#include + +#include "QCefViewPrivate.h" +#include "utils/CommonUtils.h" +#include "utils/ValueConvertor.h" + +bool +CCefClientDelegate::OnJSDialog(CefRefPtr browser, + const CefString& origin_url, + CefJSDialogHandler::JSDialogType dialog_type, + const CefString& message_text, + const CefString& default_prompt_text, + CefRefPtr callback, + bool& suppress_message) + +{ + bool ret = false; + + QString originUrl = QString::fromStdString(origin_url.ToString()); + QString messageText = QString::fromStdString(message_text.ToString()); + QString defaultPromptText = QString::fromStdString(default_prompt_text.ToString()); + + Qt::ConnectionType c = + pCefViewPrivate_->q_ptr->thread() == QThread::currentThread() ? Qt::DirectConnection : Qt::BlockingQueuedConnection; + QMetaObject::invokeMethod( + pCefViewPrivate_, + [&]() { + ret = pCefViewPrivate_->onJsDialog( + originUrl, dialog_type, messageText, defaultPromptText, callback, suppress_message); + }, + c); + return ret; +}