diff --git a/frameworks/ets/ani/ui_ability/src/ets_ability_context.cpp b/frameworks/ets/ani/ui_ability/src/ets_ability_context.cpp index 21a6849181..8d02eb9ca0 100644 --- a/frameworks/ets/ani/ui_ability/src/ets_ability_context.cpp +++ b/frameworks/ets/ani/ui_ability/src/ets_ability_context.cpp @@ -1232,12 +1232,18 @@ void EtsAbilityContext::OnOpenLink(ani_env *env, ani_object aniObj, ani_string a CreateOpenLinkTask(env, callbackobj, context, want, requestCode); } ret = context->OpenLink(want, requestCode); - if (ret == AAFwk::ERR_OPEN_LINK_START_ABILITY_DEFAULT_OK) { - aniObject = EtsErrorUtil::CreateError(env, static_cast(ERR_OK)); - } else { - aniObject = EtsErrorUtil::CreateErrorByNativeErr(env, static_cast(ret)); + if (ret == 0) { + TAG_LOGI(AAFwkTag::CONTEXT, "openLink succeeded"); + return; + } + if (freeInstallObserver_ != nullptr) { + if (ret == AAFwk::ERR_OPEN_LINK_START_ABILITY_DEFAULT_OK) { + TAG_LOGI(AAFwkTag::CONTEXT, "start ability by default succeeded"); + freeInstallObserver_->OnInstallFinishedByUrl(startTime, link, ERR_OK); + return; + } + freeInstallObserver_->OnInstallFinishedByUrl(startTime, link, ret); } - AppExecFwk::AsyncCallback(env, myCallbackobj, aniObject, nullptr); } bool EtsAbilityContext::OnIsTerminating(ani_env *env, ani_object aniObj) diff --git a/frameworks/ets/ani/ui_extension_ability/src/ets_ui_extension_context.cpp b/frameworks/ets/ani/ui_extension_ability/src/ets_ui_extension_context.cpp index 0a4d268d68..19d8fa63b9 100644 --- a/frameworks/ets/ani/ui_extension_ability/src/ets_ui_extension_context.cpp +++ b/frameworks/ets/ani/ui_extension_ability/src/ets_ui_extension_context.cpp @@ -884,12 +884,18 @@ void EtsUIExtensionContext::OpenLinkInner(ani_env *env, ani_object aniObj, ani_s CreateOpenLinkTask(env, callbackobj, context, want, requestCode); } ErrCode = context->OpenLink(want, requestCode); - if (ErrCode == AAFwk::ERR_OPEN_LINK_START_ABILITY_DEFAULT_OK) { - aniObject = EtsErrorUtil::CreateError(env, static_cast(ERR_OK)); - } else { - aniObject = EtsErrorUtil::CreateErrorByNativeErr(env, static_cast(ErrCode)); + if (ErrCode == 0) { + TAG_LOGI(AAFwkTag::UI_EXT, "openLink succeeded"); + return; + } + if (freeInstallObserver_ != nullptr) { + if (ErrCode == AAFwk::ERR_OPEN_LINK_START_ABILITY_DEFAULT_OK) { + TAG_LOGI(AAFwkTag::UI_EXT, "start ability by default succeeded"); + freeInstallObserver_->OnInstallFinishedByUrl(startTime, link, ERR_OK); + return; + } + freeInstallObserver_->OnInstallFinishedByUrl(startTime, link, ErrCode); } - AppExecFwk::AsyncCallback(env, myCallbackobj, aniObject, nullptr); } void EtsUIExtensionContext::CreateOpenLinkTask(ani_env *env, const ani_object callbackobj,