diff --git a/adapter/ohos/entrance/ace_ability.cpp b/adapter/ohos/entrance/ace_ability.cpp index 91a5818b..3396d673 100644 --- a/adapter/ohos/entrance/ace_ability.cpp +++ b/adapter/ohos/entrance/ace_ability.cpp @@ -471,7 +471,8 @@ void AceAbility::OnNewWant(const Want& want) Ability::OnNewWant(want); std::string params = want.GetStringParam(START_PARAMS_KEY); Platform::AceContainer::OnNewRequest(abilityId_, params); - Platform::AceContainer::OnNewWant(abilityId_); + std::string data = want.ToString(); + Platform::AceContainer::OnNewWant(abilityId_, data); LOGI("AceAbility::OnNewWant called End"); } diff --git a/adapter/ohos/entrance/ace_container.cpp b/adapter/ohos/entrance/ace_container.cpp index fb25d424..e71ce4b9 100644 --- a/adapter/ohos/entrance/ace_container.cpp +++ b/adapter/ohos/entrance/ace_container.cpp @@ -362,9 +362,8 @@ void AceContainer::OnInactive(int32_t instanceId) }, TaskExecutor::TaskType::UI); } -void AceContainer::OnNewWant(int32_t instanceId) +void AceContainer::OnNewWant(int32_t instanceId, const std::string& data) { - std::string data = ""; auto container = AceEngine::Get().GetContainer(instanceId); if (!container) { LOGE("container is null, OnNewWant failed."); diff --git a/adapter/ohos/entrance/ace_container.h b/adapter/ohos/entrance/ace_container.h index c9fea610..4b6d5102 100644 --- a/adapter/ohos/entrance/ace_container.h +++ b/adapter/ohos/entrance/ace_container.h @@ -226,7 +226,7 @@ public: static void OnHide(int32_t instanceId); static void OnActive(int32_t instanceId); static void OnInactive(int32_t instanceId); - static void OnNewWant(int32_t instanceId); + static void OnNewWant(int32_t instanceId, const std::string& data); static bool OnStartContinuation(int32_t instanceId); static std::string OnSaveData(int32_t instanceId); static bool OnRestoreData(int32_t instanceId, const std::string& data); diff --git a/frameworks/bridge/declarative_frontend/engine/jsi/jsi_declarative_engine.cpp b/frameworks/bridge/declarative_frontend/engine/jsi/jsi_declarative_engine.cpp index bb049ad6..16fd41bc 100644 --- a/frameworks/bridge/declarative_frontend/engine/jsi/jsi_declarative_engine.cpp +++ b/frameworks/bridge/declarative_frontend/engine/jsi/jsi_declarative_engine.cpp @@ -1348,7 +1348,7 @@ void JsiDeclarativeEngine::OnNewWant(const std::string& data) return; } - shared_ptr object = runtime->NewObject(); + shared_ptr object = runtime->ParseJson(data); std::vector> argv = { object }; CallAppFunc("onNewWant", argv); }