diff --git a/frameworks/js/napi/inputmethodability/js_input_method_engine_setting.cpp b/frameworks/js/napi/inputmethodability/js_input_method_engine_setting.cpp index 369c7d50ee0fe9fb96e8011474782dc2bf7e0952..d689785b69e603e5e9f706b198c1192765e27249 100644 --- a/frameworks/js/napi/inputmethodability/js_input_method_engine_setting.cpp +++ b/frameworks/js/napi/inputmethodability/js_input_method_engine_setting.cpp @@ -85,6 +85,7 @@ napi_value JsInputMethodEngineSetting::Init(napi_env env, napi_value exports) DECLARE_NAPI_STATIC_PROPERTY("ExtendAction", GetJsExtendActionProperty(env)), DECLARE_NAPI_STATIC_PROPERTY("SecurityMode", GetJsSecurityModeProperty(env)), DECLARE_NAPI_STATIC_PROPERTY("ImmersiveMode", GetJsImmersiveModeProperty(env)), + DECLARE_NAPI_STATIC_PROPERTY("RequestKeyboardReason", GetJsRequestKeyboardReasonProperty(env)) }; NAPI_CALL( env, napi_define_properties(env, exports, sizeof(descriptor) / sizeof(napi_property_descriptor), descriptor)); @@ -219,6 +220,24 @@ napi_value JsInputMethodEngineSetting::GetJsImmersiveModeProperty(napi_env env) return ret ? immersive : JsUtil::Const::Null(env); } +napi_value JsInputMethodEngineSetting::GetJsRequestKeyboardReasonProperty(napi_env env) +{ + napi_value requestKeyboardReason = nullptr; + NAPI_CALL(env, napi_create_object(env, &requestKeyboardReason)); + bool ret = JsUtil::Object::WriteProperty( + env, requestKeyboardReason, "NONE", static_cast(RequestKeyboardReason::NONE)); + ret = ret && + JsUtil::Object::WriteProperty( + env, requestKeyboardReason, "MOUSE", static_cast(RequestKeyboardReason::MOUSE)); + ret = ret && + JsUtil::Object::WriteProperty( + env, requestKeyboardReason, "TOUCH", static_cast(RequestKeyboardReason::TOUCH)); + ret = ret && + JsUtil::Object::WriteProperty( + env, requestKeyboardReason, "OTHER", static_cast(RequestKeyboardReason::OTHER)); + return ret ? requestKeyboardReason : JsUtil::Const::Null(env); +} + std::shared_ptr JsInputMethodEngineSetting::GetInputMethodEngineSetting() { if (inputMethodEngine_ == nullptr) { diff --git a/frameworks/js/napi/inputmethodability/js_input_method_engine_setting.h b/frameworks/js/napi/inputmethodability/js_input_method_engine_setting.h index ee2efb61aeccaeeed8c7f9d01e140cd5156d96cf..2214a2caae21a34bc9e6585c703c421c5d0b5d87 100644 --- a/frameworks/js/napi/inputmethodability/js_input_method_engine_setting.h +++ b/frameworks/js/napi/inputmethodability/js_input_method_engine_setting.h @@ -49,6 +49,7 @@ public: static napi_value DestroyPanel(napi_env env, napi_callback_info info); static napi_value GetSecurityMode(napi_env env, napi_callback_info info); static napi_value GetJsImmersiveModeProperty(napi_env env); + static napi_value GetJsRequestKeyboardReasonProperty(napi_env env); void OnInputStart() override; void OnKeyboardStatus(bool isShow) override; int32_t OnInputStop() override;