!414 【增强特性】Extension框架适配配置文件变更

Merge pull request !414 from yangzk/weekly_20220118
This commit is contained in:
openharmony_ci
2022-01-19 06:58:12 +00:00
committed by Gitee
3 changed files with 28 additions and 6 deletions
@@ -107,6 +107,8 @@ public:
private:
NativeValue* CallObjectMethod(const char* name, NativeValue* const* argv = nullptr, size_t argc = 0);
void GetSrcPath(std::string &srcPath);
JsRuntime& jsRuntime_;
std::unique_ptr<NativeReference> jsObj_;
};
@@ -46,14 +46,12 @@ void JsServiceExtension::Init(const std::shared_ptr<AbilityLocalRecord> &record,
const sptr<IRemoteObject> &token)
{
ServiceExtension::Init(record, application, handler, token);
if (Extension::abilityInfo_->srcEntrance.empty()) {
HILOG_ERROR("abilityInfo srcEntrance is empty");
std::string srcPath = "";
GetSrcPath(srcPath);
if (srcPath.empty()) {
HILOG_ERROR("Failed to get srcPath");
return;
}
std::string srcPath(Extension::abilityInfo_->moduleName + "/");
srcPath.append(Extension::abilityInfo_->srcPath);
srcPath.erase(srcPath.rfind('.'));
srcPath.append(".abc");
std::string moduleName(Extension::abilityInfo_->moduleName);
moduleName.append("::").append(abilityInfo_->name);
@@ -246,5 +244,26 @@ NativeValue* JsServiceExtension::CallObjectMethod(const char* name, NativeValue*
HILOG_INFO("JsServiceExtension::CallFunction(%{public}s), success", name);
return nativeEngine.CallFunction(value, method, argv, argc);
}
void JsServiceExtension::GetSrcPath(std::string &srcPath)
{
if (!Extension::abilityInfo_->isStageBasedModel) {
/* temporary compatibility api8 + config.json */
srcPath.append(Extension::abilityInfo_->package);
srcPath.append("/assets/js/");
if (!Extension::abilityInfo_->srcPath.empty()) {
srcPath.append(Extension::abilityInfo_->srcPath);
}
srcPath.append("/").append(Extension::abilityInfo_->name).append(".abc");
return;
}
if (!Extension::abilityInfo_->srcEntrance.empty()) {
srcPath.append(Extension::abilityInfo_->moduleName + "/");
srcPath.append(Extension::abilityInfo_->srcEntrance);
srcPath.erase(srcPath.rfind('.'));
srcPath.append(".abc");
}
}
}
}
@@ -3010,6 +3010,7 @@ int32_t AbilityManagerService::InitAbilityInfoFromExtension(AppExecFwk::Extensio
abilityInfo.applicationInfo = extensionInfo.applicationInfo;
abilityInfo.resourcePath = extensionInfo.resourcePath;
abilityInfo.enabled = extensionInfo.enabled;
abilityInfo.isStageBasedModel = true;
switch (extensionInfo.type) {
case AppExecFwk::ExtensionAbilityType::FORM:
abilityInfo.type = AppExecFwk::AbilityType::FORM;