diff --git a/frameworks/ets/ani/ui_extension_ability/src/ets_ui_extension.cpp b/frameworks/ets/ani/ui_extension_ability/src/ets_ui_extension.cpp index b992ef6bff4ebab65eb958fd34e04339e227bce5..9be157d10695b7ea2dc3a834d21889f5f738aa94 100644 --- a/frameworks/ets/ani/ui_extension_ability/src/ets_ui_extension.cpp +++ b/frameworks/ets/ani/ui_extension_ability/src/ets_ui_extension.cpp @@ -24,6 +24,8 @@ #include "context.h" #include "hitrace_meter.h" #include "hilog_tag_wrapper.h" +#include "insight_intent_executor_info.h" +#include "insight_intent_executor_mgr.h" #include "int_wrapper.h" #include "ets_runtime.h" #include "ani_common_want.h" @@ -202,8 +204,13 @@ void EtsUIExtension::OnStart(const AAFwk::Want &want, sptr s if (InsightIntentExecuteParam::IsInsightIntentExecute(want)) { launchParam.launchReason = AAFwk::LaunchReason::LAUNCHREASON_INSIGHT_INTENT; } - ani_object launchParamRef = CreateEtsLaunchParam(env, launchParam); - CallObjectMethod(false, "onCreate", signature, launchParamRef); + + ani_object launchParamObj = nullptr; + if (!WrapLaunchParam(env, launchParam, launchParamObj)) { + TAG_LOGE(AAFwkTag::UI_EXT, "WrapLaunchParam failed"); + return; + } + CallObjectMethod(false, "onCreate", signature, launchParamObj); } void EtsUIExtension::OnStop() diff --git a/frameworks/ets/ani/ui_extension_ability/src/ets_ui_extension_content_session.cpp b/frameworks/ets/ani/ui_extension_ability/src/ets_ui_extension_content_session.cpp index fd49715b074008c3c814345d72d9480b95767f65..140521d91f5073a6173bb03174af775871bd1506 100644 --- a/frameworks/ets/ani/ui_extension_ability/src/ets_ui_extension_content_session.cpp +++ b/frameworks/ets/ani/ui_extension_ability/src/ets_ui_extension_content_session.cpp @@ -199,7 +199,7 @@ ani_object EtsUIExtensionContentSession::CreateEtsUIExtensionContentSession(ani_ reinterpret_cast(EtsUIExtensionContentSession::NativeSetWindowBackgroundColor)}, ani_native_function {"getUIExtensionHostWindowProxy", nullptr, reinterpret_cast(EtsUIExtensionContentSession::NativeGetUIExtensionHostWindowProxy)}, - ani_native_function {"setReceiveDataCallbackASync", nullptr, + ani_native_function {"nativeSetReceiveDataCallback", nullptr, reinterpret_cast(EtsUIExtensionContentSession::NativeSetReceiveDataCallback)} }; status = env->Class_BindNativeMethods(cls, methods.data(), methods.size()); 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 34dc8e4d11dcf6d803aa02b257d1f776ba8cd773..7ac532facae43403ccd99f73758dccecc5b54064 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 @@ -97,7 +97,7 @@ void EtsUIExtensionContext::BindExtensionInfo(ani_env* aniEnv, ani_class context ani_status status = ANI_OK; if (abilityInfo && hapModuleInfo) { auto isExist = [&abilityInfo](const OHOS::AppExecFwk::ExtensionAbilityInfo& info) { - TAG_LOGE(AAFwkTag::UI_EXT, "%{public}s, %{public}s", info.bundleName.c_str(), info.name.c_str()); + TAG_LOGD(AAFwkTag::UI_EXT, "%{public}s, %{public}s", info.bundleName.c_str(), info.name.c_str()); return info.bundleName == abilityInfo->bundleName && info.name == abilityInfo->name; }; auto infoIter = std::find_if( diff --git a/frameworks/ets/ets/@ohos.app.ability.UIExtensionContentSession.ets b/frameworks/ets/ets/@ohos.app.ability.UIExtensionContentSession.ets index 64066274f0fc4b10972509ef3686851fea241597..a51a633afa83a0f80d8efc133905fb7835e9fb90 100644 --- a/frameworks/ets/ets/@ohos.app.ability.UIExtensionContentSession.ets +++ b/frameworks/ets/ets/@ohos.app.ability.UIExtensionContentSession.ets @@ -26,7 +26,6 @@ export default class UIExtensionContentSession { native setWindowBackgroundColor(color: string): void; native getUIExtensionHostWindowProxy(): uiExtensionHost.UIExtensionHostWindowProxy; native nativeSetReceiveDataCallback(callback: (data: Record) => void): void; - native nativeSetReceiveDataForResultCallback(callback: (data: Record) => Record): void; native terminateSelfSync(callback:AsyncCallbackWrapper): void; native terminateSelfWithResultSync(parameter: AbilityResult, callback:AsyncCallbackWrapper): void; @@ -38,10 +37,6 @@ export default class UIExtensionContentSession { this.nativeSetReceiveDataCallback(callback); } - setReceiveDataForResultCallback(callback: (data: Record) => Record): void { - this.nativeSetReceiveDataForResultCallback(callback); - } - terminateSelf(callback:AsyncCallback): void { let myCall = new AsyncCallbackWrapper(callback); taskpool.execute((): void => { diff --git a/frameworks/ets/ets/application/UIExtensionContext.ets b/frameworks/ets/ets/application/UIExtensionContext.ets index 4d4c5c693e306b97537bc9e8f678ee0abb3769ed..4ebea3b15a4c0e53fdb4173fdadc0b868f04faa9 100644 --- a/frameworks/ets/ets/application/UIExtensionContext.ets +++ b/frameworks/ets/ets/application/UIExtensionContext.ets @@ -13,8 +13,6 @@ * limitations under the License. */ -import Want from '@ohos.app.ability.Want'; -import StartOptions from '@ohos.app.ability.StartOptions'; import { AbilityResult } from 'ability.abilityResult'; import { AsyncCallback } from '@ohos.base'; import { BusinessError } from '@ohos.base'; @@ -24,8 +22,6 @@ import ExtensionContext from 'application.ExtensionContext'; export default class UIExtensionContext extends ExtensionContext { native terminateSelfSync(callback:AsyncCallbackWrapper): void; native terminateSelfWithResultSync(parameter: AbilityResult, callback: AsyncCallbackWrapper): void; - private native nativeStartAbilitySync(want: Want, callback: AsyncCallbackWrapper): void; - private native nativeStartAbilitySync(want: Want, options: StartOptions, callback:AsyncCallbackWrapper): void; terminateSelf(callback:AsyncCallback): void { let myCall = new AsyncCallbackWrapper(callback); @@ -72,35 +68,4 @@ export default class UIExtensionContext extends ExtensionContext { }); return p; } - - startAbility(want: Want, callback: AsyncCallback): void { - let myCall = new AsyncCallbackWrapper(callback); - taskpool.execute((): void => { - this.nativeStartAbilitySync(want, myCall); - }); - } - - startAbility(want: Want, options: StartOptions, callback: AsyncCallback): void { - let myCall = new AsyncCallbackWrapper(callback); - taskpool.execute((): void => { - this.nativeStartAbilitySync(want, options, myCall); - }); - } - - startAbility(want: Want, options: StartOptions): Promise { - let p = - new Promise((resolve: (data: undefined) => void, reject: (err: BusinessError) => void): void => { - let myCall = new AsyncCallbackWrapper((err: BusinessError) => { - if (err.code == 0) { - resolve(undefined); - } else { - reject(err); - } - }); - taskpool.execute((): void => { - this.nativeStartAbilitySync(want, options, myCall); - }); - }); - return p; - } } \ No newline at end of file diff --git a/frameworks/native/ability/native/BUILD.gn b/frameworks/native/ability/native/BUILD.gn index d74769b20b175e496d97098d1ad261ef911b9f3f..fb7c1fcf63f5b576fb7ab2b86e59df611e1e12c0 100644 --- a/frameworks/native/ability/native/BUILD.gn +++ b/frameworks/native/ability/native/BUILD.gn @@ -1699,6 +1699,7 @@ ohos_shared_library("ui_extension") { "${ability_runtime_native_path}/ability/native/ui_extension_base/js_uiservice_uiext_connection.cpp", "${ability_runtime_native_path}/ability/native/ui_extension_base/ui_extension_context.cpp", "${ability_runtime_native_path}/ability/native/ui_extension_base/ui_extension_servicehost_stub_impl.cpp", + "${ability_runtime_path}/frameworks/ets/ani/ui_extension_ability/src/ets_ui_extension.cpp", "${ability_runtime_path}/frameworks/ets/ani/ui_extension_ability/src/ets_ui_extension_content_session.cpp", "${ability_runtime_path}/frameworks/ets/ani/ui_extension_ability/src/ets_ui_extension_context.cpp", ] diff --git a/frameworks/native/ability/native/ui_extension_ability/ui_extension.cpp b/frameworks/native/ability/native/ui_extension_ability/ui_extension.cpp index a5036af4b4510665c28aa55e5c54088988996d7e..89cbb5e312e9b5bf45730ef4d651c197960281ba 100755 --- a/frameworks/native/ability/native/ui_extension_ability/ui_extension.cpp +++ b/frameworks/native/ability/native/ui_extension_ability/ui_extension.cpp @@ -15,6 +15,7 @@ #include "ui_extension.h" +#include "ets_ui_extension.h" #include "hilog_tag_wrapper.h" #include "js_ui_extension.h" #include "runtime.h" @@ -32,6 +33,8 @@ UIExtension* UIExtension::Create(const std::unique_ptr& runtime) switch (runtime->GetLanguage()) { case Runtime::Language::JS: return JsUIExtension::Create(runtime); + case Runtime::Language::ETS: + return EtsUIExtension::Create(runtime); default: return new UIExtension(); diff --git a/utils/server/startup/src/startup_util.cpp b/utils/server/startup/src/startup_util.cpp index 43ab840c7a1ca78eb7421262d9ab157b2994ede4..9f176c267e07c5b7da2811ff26564a266133088d 100644 --- a/utils/server/startup/src/startup_util.cpp +++ b/utils/server/startup/src/startup_util.cpp @@ -93,6 +93,7 @@ void StartupUtil::InitAbilityInfoFromExtension(AppExecFwk::ExtensionAbilityInfo abilityInfo.process = extensionInfo.process; abilityInfo.metadata = extensionInfo.metadata; abilityInfo.compileMode = extensionInfo.compileMode; + abilityInfo.codeLanguage = extensionInfo.codeLanguage; abilityInfo.type = AppExecFwk::AbilityType::EXTENSION; abilityInfo.extensionTypeName = extensionInfo.extensionTypeName; if (!extensionInfo.hapPath.empty()) {