From 8e22d5eac7fe66ff1dbf9955f0b479463fa125f8 Mon Sep 17 00:00:00 2001 From: wulong Date: Mon, 20 Jan 2025 16:46:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8D=E6=94=AF=E6=8C=81=E7=9A=84=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=BF=94=E5=9B=9E=E9=94=99=E8=AF=AF=E7=A0=81=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E6=8A=9B=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frameworks/js/napi/include/common.h | 2 +- frameworks/js/napi/src/common_utils.cpp | 9 ++- frameworks/js/napi/src/init.cpp | 36 +++++----- .../js/napi/src/manager/init_module.cpp | 66 +++++++++---------- 4 files changed, 58 insertions(+), 55 deletions(-) diff --git a/frameworks/js/napi/include/common.h b/frameworks/js/napi/include/common.h index 98e286557..2a2835908 100644 --- a/frameworks/js/napi/include/common.h +++ b/frameworks/js/napi/include/common.h @@ -1820,7 +1820,7 @@ public: static bool IsValidRemoveReason(int32_t reasonType); static void NapiThrow(napi_env env, int32_t errCode); static void NapiThrow(napi_env env, int32_t errCode, std::string &msg); - static napi_value NapiThrowCapErr(napi_env env, napi_callback_info info); + static napi_value NapiReturnCapErr(napi_env env, napi_callback_info info); static int32_t ErrorToExternal(uint32_t errCode); static void CreateReturnValue(const napi_env &env, const CallbackPromiseInfo &info, const napi_value &result); static napi_value GetLockScreenPicture( diff --git a/frameworks/js/napi/src/common_utils.cpp b/frameworks/js/napi/src/common_utils.cpp index 1725f7820..73a4f3694 100644 --- a/frameworks/js/napi/src/common_utils.cpp +++ b/frameworks/js/napi/src/common_utils.cpp @@ -352,10 +352,13 @@ int32_t Common::ErrorToExternal(uint32_t errCode) return ExternalCode; } -napi_value Common::NapiThrowCapErr(napi_env env, napi_callback_info info) +napi_value Common::NapiReturnCapErr(napi_env env, napi_callback_info info) { - Common::NapiThrow(env, ERROR_SYSTEM_CAP_ERROR); - return nullptr; + napi_value promise = nullptr; + napi_deferred deferred = nullptr; + napi_create_promise(env, &deferred, &promise); + SetPromise(env, deferred, ERROR_SYSTEM_CAP_ERROR, Common::NapiGetNull(env), false); + return promise; } } // namespace NotificationNapi } // namespace OHOS diff --git a/frameworks/js/napi/src/init.cpp b/frameworks/js/napi/src/init.cpp index 4333456ed..c1303d520 100644 --- a/frameworks/js/napi/src/init.cpp +++ b/frameworks/js/napi/src/init.cpp @@ -68,14 +68,14 @@ napi_value NotificationInit(napi_env env, napi_value exports) DECLARE_NAPI_FUNCTION("displayBadge", DisplayBadge), DECLARE_NAPI_FUNCTION("isBadgeDisplayed", IsBadgeDisplayed), #else - DECLARE_NAPI_FUNCTION("displayBadge", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("isBadgeDisplayed", Common::NapiThrowCapErr), + DECLARE_NAPI_FUNCTION("displayBadge", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("isBadgeDisplayed", Common::NapiReturnCapErr), #endif #ifdef ANS_FEATURE_LIVEVIEW_LOCAL_LIVEVIEW DECLARE_NAPI_FUNCTION("show", ShowNotification), #else - DECLARE_NAPI_FUNCTION("show", Common::NapiThrowCapErr), + DECLARE_NAPI_FUNCTION("show", Common::NapiReturnCapErr), #endif #ifdef ANS_FEATURE_DISTRIBUTED_DB @@ -88,14 +88,14 @@ napi_value NotificationInit(napi_env env, napi_value exports) DECLARE_NAPI_FUNCTION("setSyncNotificationEnabledWithoutApp", SetSyncNotificationEnabledWithoutApp), DECLARE_NAPI_FUNCTION("getSyncNotificationEnabledWithoutApp", GetSyncNotificationEnabledWithoutApp), #else - DECLARE_NAPI_FUNCTION("isDistributedEnabled", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("enableDistributed", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("enableDistributedByBundle", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("enableDistributedSelf", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("isDistributedEnabledByBundle", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("getDeviceRemindType", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("setSyncNotificationEnabledWithoutApp", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("getSyncNotificationEnabledWithoutApp", Common::NapiThrowCapErr), + DECLARE_NAPI_FUNCTION("isDistributedEnabled", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("enableDistributed", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("enableDistributedByBundle", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("enableDistributedSelf", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("isDistributedEnabledByBundle", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("getDeviceRemindType", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("setSyncNotificationEnabledWithoutApp", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("getSyncNotificationEnabledWithoutApp", Common::NapiReturnCapErr), #endif #ifdef ANS_FEATURE_DISTURB_MANAGER @@ -103,9 +103,9 @@ napi_value NotificationInit(napi_env env, napi_value exports) DECLARE_NAPI_FUNCTION("getDoNotDisturbDate", GetDoNotDisturbDate), DECLARE_NAPI_FUNCTION("supportDoNotDisturbMode", SupportDoNotDisturbMode), #else - DECLARE_NAPI_FUNCTION("setDoNotDisturbDate", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("getDoNotDisturbDate", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("supportDoNotDisturbMode", Common::NapiThrowCapErr), + DECLARE_NAPI_FUNCTION("setDoNotDisturbDate", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("getDoNotDisturbDate", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("supportDoNotDisturbMode", Common::NapiReturnCapErr), #endif #ifdef ANS_FEATURE_SLOT_MANAGER @@ -114,10 +114,10 @@ napi_value NotificationInit(napi_env env, napi_value exports) DECLARE_NAPI_FUNCTION("getSlotNumByBundle", GetSlotNumByBundle), DECLARE_NAPI_FUNCTION("setSlotByBundle", SetSlotByBundle), #else - DECLARE_NAPI_FUNCTION("isNotificationSlotEnabled", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("getSlotsByBundle", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("getSlotNumByBundle", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("setSlotByBundle", Common::NapiThrowCapErr), + DECLARE_NAPI_FUNCTION("isNotificationSlotEnabled", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("getSlotsByBundle", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("getSlotNumByBundle", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("setSlotByBundle", Common::NapiReturnCapErr), #endif }; diff --git a/frameworks/js/napi/src/manager/init_module.cpp b/frameworks/js/napi/src/manager/init_module.cpp index f480c570d..fa6b05fb9 100644 --- a/frameworks/js/napi/src/manager/init_module.cpp +++ b/frameworks/js/napi/src/manager/init_module.cpp @@ -59,8 +59,8 @@ static napi_value NapiPushInit(napi_env env, napi_value exports) OHOS::AbilityRuntime::BindNativeFunction(env, exports, "on", moduleName, NapiPush::RegisterPushCallback); OHOS::AbilityRuntime::BindNativeFunction(env, exports, "off", moduleName, NapiPush::UnregisterPushCallback); #else - OHOS::AbilityRuntime::BindNativeFunction(env, exports, "on", moduleName, Common::NapiThrowCapErr); - OHOS::AbilityRuntime::BindNativeFunction(env, exports, "off", moduleName, Common::NapiThrowCapErr); + OHOS::AbilityRuntime::BindNativeFunction(env, exports, "on", moduleName, Common::NapiReturnCapErr); + OHOS::AbilityRuntime::BindNativeFunction(env, exports, "off", moduleName, Common::NapiReturnCapErr); #endif return exports; } @@ -108,10 +108,10 @@ napi_value NotificationManagerInit(napi_env env, napi_value exports) DECLARE_NAPI_FUNCTION("setBadgeNumber", NapiSetBadgeNumber), DECLARE_NAPI_FUNCTION("setBadgeNumberByBundle", NapiSetBadgeNumberByBundle), #else - DECLARE_NAPI_FUNCTION("displayBadge", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("isBadgeDisplayed", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("setBadgeNumber", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("setBadgeNumberByBundle", Common::NapiThrowCapErr), + DECLARE_NAPI_FUNCTION("displayBadge", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("isBadgeDisplayed", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("setBadgeNumber", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("setBadgeNumberByBundle", Common::NapiReturnCapErr), #endif #ifdef ANS_FEATURE_DISTRIBUTED_DB @@ -126,16 +126,16 @@ napi_value NotificationManagerInit(napi_env env, napi_value exports) DECLARE_NAPI_FUNCTION("setSyncNotificationEnabledWithoutApp", NapiSetSyncNotificationEnabledWithoutApp), DECLARE_NAPI_FUNCTION("isSmartReminderEnabled", NapiIsSmartReminderEnabled), #else - DECLARE_NAPI_FUNCTION("isDistributedEnabled", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("setDistributedEnable", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("setDistributedEnableByBundle", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("enableDistributedSelf", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("isDistributedEnabledByBundle", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("setDistributedEnabledByBundle", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("setSmartReminderEnabled", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("getDeviceRemindType", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("setSyncNotificationEnabledWithoutApp", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("isSmartReminderEnabled", Common::NapiThrowCapErr), + DECLARE_NAPI_FUNCTION("isDistributedEnabled", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("setDistributedEnable", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("setDistributedEnableByBundle", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("enableDistributedSelf", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("isDistributedEnabledByBundle", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("setDistributedEnabledByBundle", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("setSmartReminderEnabled", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("getDeviceRemindType", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("setSyncNotificationEnabledWithoutApp", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("isSmartReminderEnabled", Common::NapiReturnCapErr), #endif #ifdef ANS_FEATURE_DISTURB_MANAGER @@ -147,13 +147,13 @@ napi_value NotificationManagerInit(napi_env env, napi_value exports) DECLARE_NAPI_FUNCTION("isSupportDoNotDisturbMode", NapiSupportDoNotDisturbMode), DECLARE_NAPI_FUNCTION("getDoNotDisturbProfile", NapiGetDoNotDisturbProfile), #else - DECLARE_NAPI_FUNCTION("setDoNotDisturbDate", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("getDoNotDisturbDate", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("addDoNotDisturbProfile", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("removeDoNotDisturbProfile", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("supportDoNotDisturbMode", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("isSupportDoNotDisturbMode", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("getDoNotDisturbProfile", Common::NapiThrowCapErr), + DECLARE_NAPI_FUNCTION("setDoNotDisturbDate", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("getDoNotDisturbDate", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("addDoNotDisturbProfile", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("removeDoNotDisturbProfile", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("supportDoNotDisturbMode", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("isSupportDoNotDisturbMode", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("getDoNotDisturbProfile", Common::NapiReturnCapErr), #endif #ifdef ANS_FEATURE_SLOT_MANAGER @@ -165,27 +165,27 @@ napi_value NotificationManagerInit(napi_env env, napi_value exports) DECLARE_NAPI_FUNCTION("getSlotFlagsByBundle", NapiGetSlotFlagsByBundle), DECLARE_NAPI_FUNCTION("getSlotByBundle", NapiGetSlotByBundle), #else - DECLARE_NAPI_FUNCTION("setSlotByBundle", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("getSlotsByBundle", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("setNotificationEnableSlot", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("isNotificationSlotEnabled", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("setSlotFlagsByBundle", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("getSlotFlagsByBundle", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("getSlotByBundle", Common::NapiThrowCapErr), + DECLARE_NAPI_FUNCTION("setSlotByBundle", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("getSlotsByBundle", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("setNotificationEnableSlot", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("isNotificationSlotEnabled", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("setSlotFlagsByBundle", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("getSlotFlagsByBundle", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("getSlotByBundle", Common::NapiReturnCapErr), #endif #ifdef ANS_FEATURE_LIVEVIEW_LOCAL_LIVEVIEW DECLARE_NAPI_FUNCTION("subscribeSystemLiveView", NapiSubscriteLocalAcitvity), DECLARE_NAPI_FUNCTION("triggerSystemLiveView", NapiTriggerLocalLiveView), #else - DECLARE_NAPI_FUNCTION("subscribeSystemLiveView", Common::NapiThrowCapErr), - DECLARE_NAPI_FUNCTION("triggerSystemLiveView", Common::NapiThrowCapErr), + DECLARE_NAPI_FUNCTION("subscribeSystemLiveView", Common::NapiReturnCapErr), + DECLARE_NAPI_FUNCTION("triggerSystemLiveView", Common::NapiReturnCapErr), #endif #ifdef ANS_FEATURE_ADDITIONAL_CONFIG DECLARE_NAPI_FUNCTION("setAdditionalConfig", NapiSetAdditionConfig), #else - DECLARE_NAPI_FUNCTION("setAdditionalConfig", Common::NapiThrowCapErr), + DECLARE_NAPI_FUNCTION("setAdditionalConfig", Common::NapiReturnCapErr), #endif }; -- Gitee