From 27c71168a6cfd91934d3d9209efe4ec227b34505 Mon Sep 17 00:00:00 2001 From: duanshaofei Date: Wed, 10 Sep 2025 12:21:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=B3=E9=94=AE=E8=8F=9C=E5=8D=95=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=A2=9E=E5=BC=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: duanshaofei --- .../include/ohos_nweb/nweb_context_menu_params.h | 10 ++++++++++ .../webcore/ark_web_context_menu_params_impl.cpp | 5 +++++ .../bridge/webcore/ark_web_context_menu_params_impl.h | 1 + .../webview/ark_web_context_menu_params_wrapper.h | 3 +++ .../webview/ark_web_controller_handler_wrapper.cpp | 5 +++++ .../ohos_nweb/include/ark_web_context_menu_params.h | 3 +++ 6 files changed, 27 insertions(+) diff --git a/ohos_interface/include/ohos_nweb/nweb_context_menu_params.h b/ohos_interface/include/ohos_nweb/nweb_context_menu_params.h index 0e6807028..b77595bbf 100644 --- a/ohos_interface/include/ohos_nweb/nweb_context_menu_params.h +++ b/ohos_interface/include/ohos_nweb/nweb_context_menu_params.h @@ -42,6 +42,14 @@ public: CM_MT_TEXT, }; + enum ContextMenuDataMediaType { + CMD_MT_NONE, + CMD_MT_IMAGE, + CMD_MT_VIDEO, + CMD_MT_AUDIO, + CMD_MT_CANVAS, + }; + enum ContextMenuEditStateFlags { CM_ES_NONE = 0, CM_ES_CAN_CUT = 1 << 0, @@ -101,6 +109,8 @@ public: virtual void GetImageRect(int& x, int& y, int& w, int& h) {} virtual bool IsAILink() { return false; } + + virtual ContextMenuDataMediaType GetMediaType() {return ContextMenuDataMediaTyoe::CMD_MT_NONE; } }; class OHOS_NWEB_EXPORT NWebQuickMenuParams { diff --git a/ohos_interface/ohos_glue/ohos_nweb/bridge/webcore/ark_web_context_menu_params_impl.cpp b/ohos_interface/ohos_glue/ohos_nweb/bridge/webcore/ark_web_context_menu_params_impl.cpp index 0b6a7a9eb..b557bbc37 100644 --- a/ohos_interface/ohos_glue/ohos_nweb/bridge/webcore/ark_web_context_menu_params_impl.cpp +++ b/ohos_interface/ohos_glue/ohos_nweb/bridge/webcore/ark_web_context_menu_params_impl.cpp @@ -108,4 +108,9 @@ bool ArkWebContextMenuParamsImpl::IsAILink() { return nweb_context_menu_params_->IsAILink(); } + +int ArkWebContextMenuParamsImpl::GetContextMenuMediaType() +{ + return static_cast(nweb_context_menu_params_->GetContextMenuMediaType()); +} } // namespace OHOS::ArkWeb diff --git a/ohos_interface/ohos_glue/ohos_nweb/bridge/webcore/ark_web_context_menu_params_impl.h b/ohos_interface/ohos_glue/ohos_nweb/bridge/webcore/ark_web_context_menu_params_impl.h index f141bab17..ff806b3fb 100644 --- a/ohos_interface/ohos_glue/ohos_nweb/bridge/webcore/ark_web_context_menu_params_impl.h +++ b/ohos_interface/ohos_glue/ohos_nweb/bridge/webcore/ark_web_context_menu_params_impl.h @@ -63,6 +63,7 @@ public: bool IsAILink() override; + int GetContextMenuMediaType() override; private: std::shared_ptr nweb_context_menu_params_; }; diff --git a/ohos_interface/ohos_glue/ohos_nweb/bridge/webview/ark_web_context_menu_params_wrapper.h b/ohos_interface/ohos_glue/ohos_nweb/bridge/webview/ark_web_context_menu_params_wrapper.h index a5d394fa5..391d2d85d 100644 --- a/ohos_interface/ohos_glue/ohos_nweb/bridge/webview/ark_web_context_menu_params_wrapper.h +++ b/ohos_interface/ohos_glue/ohos_nweb/bridge/webview/ark_web_context_menu_params_wrapper.h @@ -25,6 +25,7 @@ namespace OHOS::ArkWeb { using ArkWebMediaType = OHOS::NWeb::NWebContextMenuParams::ContextMenuMediaType; using ArkWebSourceType = OHOS::NWeb::NWebContextMenuParams::ContextMenuSourceType; using ArkWebInputFieldType = OHOS::NWeb::NWebContextMenuParams::ContextMenuInputFieldType; +using ArkWebDataMediaType = OHOS::NWeb::NWebContextMenuParams::ContextMenuDaraMediaType; class ArkWebContextMenuParamsWrapper : public OHOS::NWeb::NWebContextMenuParams { public: @@ -64,6 +65,8 @@ public: void GetImageRect(int& x, int& y, int& w, int& h) override; bool IsAILink() override; + + ArkWebDataMediaType GetContextMenuMediaType() override; private: ArkWebRefPtr ark_web_context_menu_params_; }; diff --git a/ohos_interface/ohos_glue/ohos_nweb/bridge/webview/ark_web_controller_handler_wrapper.cpp b/ohos_interface/ohos_glue/ohos_nweb/bridge/webview/ark_web_controller_handler_wrapper.cpp index 145398553..192d57a94 100644 --- a/ohos_interface/ohos_glue/ohos_nweb/bridge/webview/ark_web_controller_handler_wrapper.cpp +++ b/ohos_interface/ohos_glue/ohos_nweb/bridge/webview/ark_web_controller_handler_wrapper.cpp @@ -43,4 +43,9 @@ void ArkWebControllerHandlerWrapper::SetNWebHandlerById(int32_t nweb_id) { ark_web_comtroller_handler_->SetNWebHandlerById(nweb_id); } + +ArkWebDataMediaType ArkWebContextMenuParamsWrapper::GetContextMenuMediaType() +{ + return static_cast(ark_web_context_menu_params_->GetContextMenuMediaType()); +} } // namespace OHOS::ArkWeb diff --git a/ohos_interface/ohos_glue/ohos_nweb/include/ark_web_context_menu_params.h b/ohos_interface/ohos_glue/ohos_nweb/include/ark_web_context_menu_params.h index df391b950..20443331f 100644 --- a/ohos_interface/ohos_glue/ohos_nweb/include/ark_web_context_menu_params.h +++ b/ohos_interface/ohos_glue/ohos_nweb/include/ark_web_context_menu_params.h @@ -87,6 +87,9 @@ public: */ /*--ark web()--*/ virtual bool IsAILink() = 0; + + /*--ark web()--*/ + virtual int GetContextMenuMediaType() = 0; }; } // namespace OHOS::ArkWeb -- Gitee