From fc56622ccb686ac8ee29520923ce5ebf9e3d5afb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=8D=92cheliangzhao=E2=AD=90?= Date: Wed, 3 Jan 2024 17:52:34 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=9B=91=E5=90=AC=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=A7=A6=E5=8F=91=EF=BC=8C=E5=9B=A0=E4=B8=BA?= =?UTF-8?q?C++=E5=AF=B9=E8=B1=A1=E7=9A=84=E7=94=9F=E5=91=BD=E5=91=A8?= =?UTF-8?q?=E6=9C=9F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- drawing/src/main/cpp/plugin/plugin_render.cpp | 15 ++++++++------- drawing/src/main/cpp/plugin/plugin_render.h | 12 ++++++------ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/drawing/src/main/cpp/plugin/plugin_render.cpp b/drawing/src/main/cpp/plugin/plugin_render.cpp index e609804..c92d9f6 100644 --- a/drawing/src/main/cpp/plugin/plugin_render.cpp +++ b/drawing/src/main/cpp/plugin/plugin_render.cpp @@ -70,7 +70,7 @@ void DispatchTouchEventCB(OH_NativeXComponent *component, void *window) { std::unordered_map PluginRender::instance_; -PluginRender::~PluginRender() {} +PluginRender::~PluginRender() = default; PluginRender *PluginRender::GetInstance(std::string &id) { if (PluginRender::instance_.find(id) == PluginRender::instance_.end()) { @@ -81,15 +81,16 @@ PluginRender *PluginRender::GetInstance(std::string &id) { return PluginRender::instance_[id]; } - void PluginRender::Export(napi_env env, napi_value value) {} void PluginRender::RegisterCallback(OH_NativeXComponent *nativeXComponent) { - this->renderCallback_.DispatchTouchEvent = DispatchTouchEventCB; - this->renderCallback_.OnSurfaceChanged = OnSurfaceChangedCB; - this->renderCallback_.OnSurfaceCreated = OnSurfaceCreatedCB; - this->renderCallback_.OnSurfaceDestroyed = OnSurfaceDestroyedCB; + this->renderCallback_ = new OH_NativeXComponent_Callback(); + + this->renderCallback_->DispatchTouchEvent = DispatchTouchEventCB; + this->renderCallback_->OnSurfaceChanged = OnSurfaceChangedCB; + this->renderCallback_->OnSurfaceCreated = OnSurfaceCreatedCB; + this->renderCallback_->OnSurfaceDestroyed = OnSurfaceDestroyedCB; // 将 callback 注册给 NativeXComponent - OH_NativeXComponent_RegisterCallback(nativeXComponent, &this->renderCallback_); + OH_NativeXComponent_RegisterCallback(nativeXComponent, this->renderCallback_); } diff --git a/drawing/src/main/cpp/plugin/plugin_render.h b/drawing/src/main/cpp/plugin/plugin_render.h index b0a43e9..fbe1a98 100644 --- a/drawing/src/main/cpp/plugin/plugin_render.h +++ b/drawing/src/main/cpp/plugin/plugin_render.h @@ -24,19 +24,19 @@ #define HARMONY_DEMO_NAPI_DRAWING_PLUGIN_RENDER_H class PluginRender { -private: - ~PluginRender(); - - OH_NativeXComponent_Callback renderCallback_; - public: - static std::unordered_map instance_; + ~PluginRender(); static PluginRender *GetInstance(std::string &id); void Export(napi_env env, napi_value); // 注册监听XComponent组件的回调,包括生命周期函数,手势监听函数等。 void RegisterCallback(OH_NativeXComponent *nativeXComponent); + +private: + OH_NativeXComponent_Callback *renderCallback_; + + static std::unordered_map instance_; }; #endif // HARMONY_DEMO_NAPI_DRAWING_PLUGIN_RENDER_H