HarmonyOS 鸿蒙Next har中如何获取Resources中的字符串?

发布于 1周前 作者 songsunli 来自 鸿蒙OS

HarmonyOS 鸿蒙Next har中如何获取Resources中的字符串?

HarmonyOS har中如何获取Resources中的字符串?

2 回复

类中不能直接调用getContext()方法获取Context,可以在调用的地方,把参数传进来,参考代码如下:

class TestModel {
  constructor() {
  }
}

export default new TestModel()

//context可以作为参数,在使用的地方传进来,UIAbility中context = this.context, 调用方法:getString(this.context) //@Component修饰的页面中context = getContext(this),调用方法:getString(getContext(this)) export function getString(context: Context) { let value = context.resourceManager.getStringSync($r(‘app.string.test_string’).id); console.log("value = " + value) }

在HarmonyOS鸿蒙Next har中获取Resources中的字符串资源,通常是通过资源引用机制来实现的。以下是基本的步骤和代码示例:

  1. 定义字符串资源: 在resources/base/string.json文件中定义字符串资源,例如:

    {
        "app_name": "MyHarmonyOSApp",
        "welcome_message": "Welcome to HarmonyOS!"
    }
    
  2. 获取资源引用: 在Java或JavaScript代码中,通过ResourceTable类来引用这些字符串资源。例如,在Java代码中:

    String appName = ResourceTable.String_app_name;
    String welcomeMessage = ResourceTable.String_welcome_message;
    

    在JavaScript代码中,可以通过$r对象来引用:

    let appName = $r('string_app_name');
    let welcomeMessage = $r('string_welcome_message');
    
  3. 使用字符串: 将获取到的字符串资源用于UI显示或逻辑处理。

注意:资源ID的命名在Java和JavaScript中略有不同,Java中使用全大写和下划线分隔(如String_app_name),而JavaScript中使用小写和点分隔(如string_app_name),并且需要加上$r前缀。

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

回到顶部