diff --git a/interfaces/kits/napi/floating_ball_napi/js_fb_window_controller.cpp b/interfaces/kits/napi/floating_ball_napi/js_fb_window_controller.cpp index e33cc2e71b678343991d4927f7bb4c7bf2236fbb..a7eb0d180c1ec9bda94b179e83cc0e97a971b305 100644 --- a/interfaces/kits/napi/floating_ball_napi/js_fb_window_controller.cpp +++ b/interfaces/kits/napi/floating_ball_napi/js_fb_window_controller.cpp @@ -15,6 +15,7 @@ #include "js_fb_window_controller.h" #include +#include #include "color_parser.h" #include "floating_ball_manager.h" @@ -399,6 +400,21 @@ napi_value JsFbController::CheckParams(napi_env env, const FbOption& option) static_cast(WmErrorCode::WM_ERROR_FB_PARAM_INVALID), "current template need icon")); return nullptr; } + if (option.GetTemplate() == static_cast(FloatingBallTemplate::EMPHATIC)) { + if (option.GetIcon() == nullptr) { + TLOGE(WmsLogTag::WMS_SYSTEM, "Template %{public}u need icon.", option.GetTemplate()); + napi_throw(env, AbilityRuntime::CreateJsError(env, + static_cast(WmErrorCode::WM_ERROR_FB_PARAM_INVALID), "Current template need icon")); + return nullptr; + } + const std::string title = option.GetTitle(); + if (std::any_of(title.begin(), title.end(), [](unsigned const char c){ return !std::isdigit(c); })) { + TLOGE(WmsLogTag::WMS_SYSTEM, "The title of template %{public}u must be a number.", option.GetTemplate()); + napi_throw(env, AbilityRuntime::CreateJsError(env, + static_cast(WmErrorCode::WM_ERROR_FB_PARAM_INVALID), "current template need number title")); + return nullptr; + } + } return NapiGetUndefined(env); }