HarmonyOS 鸿蒙Next HAR中Resource如何转string

HarmonyOS 鸿蒙Next HAR中Resource如何转string

HAR中Resource如何转string,注意是HAR中。  

我尝试 getContext().createModuleContext(moduleName).resourceManager.getStringSync(resource) 会报异常 Error message:Invalid input parameter. (这个在HSP/HAP中可用)  那么,在HAR中如何转呢?


更多关于HarmonyOS 鸿蒙Next HAR中Resource如何转string的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

har引用har包内的资源,无需通过创建modulecontext获取,直接通过$获取即可,

通过@ohos.resourceManager模块的resourceManager.getStringValue()方法获取。

开发这,har的获取上下文方式和hsp不一样,har不是一个单独的包,所以上下文可以通过全局变量来控制;如果这是为了获取图片、文字资源,可以直接使用$r(‘app.media.icon_har’)的写法获取har中的资源

使用getStringValue()方法获取,参考:

try {

 // getContext()

 getContext().resourceManager.getStringValue($r('app.string.page_show').id, (error: BusinessError, value: string) => {

   if (error != null) {

     console.error("error is " + error);

   } else {

     this.message = value;

   }

 });

} catch (error) {

 let code = (error as BusinessError).code;

 let message = (error as BusinessError).message;

 console.error(`callback getStringValue failed, error code: ${code}, message: ${message}.`);

}

更多关于HarmonyOS 鸿蒙Next HAR中Resource如何转string的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next HAR(Harmony Ability Resource)中,将Resource(资源)转换为string(字符串)的过程通常涉及到资源文件的引用和加载。以下是具体步骤的简述:

  1. 定义资源:首先,在resources目录下的相应文件中定义你的资源,例如strings.xml中定义字符串资源。

  2. 资源引用:在代码中,通过资源ID来引用资源。HarmonyOS提供了ResourceTable类来访问资源。例如,如果字符串资源ID为app_name,则可以通过ResourceTable.String_app_name来引用。

  3. 加载资源:使用ResourceManagerResourceTable加载资源。对于字符串资源,可以直接使用ResourceTable.String_xxx.getString(context)来获取字符串值,其中context通常是当前的Ability或Page的实例。

  4. 转换为string:通过上述方法加载的资源已经是一个字符串类型,无需额外转换。

示例代码:

String appName = ResourceTable.String_app_name.getString(this); // this代表当前Ability或Page的实例

请注意,确保资源文件正确配置且资源ID无误。此外,资源加载的上下文(context)必须正确传递。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部