mirror of
https://github.com/openharmony/ability_ability_runtime.git
synced 2026-08-24 12:43:16 -04:00
!414 【增强特性】Extension框架适配配置文件变更
Merge pull request !414 from yangzk/weekly_20220118
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user