• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 资源管理开发常见问题
2
3## 如何读取rawfile中的xml文件并转化为String类型
4
5适用于:OpenHarmony 3.2 Beta5 API 9
6
7**解决措施**
8
9通过resourceManager的getRawFileContent接口获取xml数据,再通过String.fromCharCode将获取的数据转化为String类型。
10
11**代码示例**
12
13```
14resourceManager.getRawFileContent('test.xml', (error, value) => {
15  if (error != null) {
16    console.log("error is " + error);
17  } else {
18    let rawFile = value;
19    let xml = String.fromCharCode.apply(null, rawFile)
20  }
21});
22```
23
24**参考链接**
25
26[资源管理](../reference/apis/js-apis-resource-manager.md)
27
28## Stage模型下如何获取资源
29
30适用于:OpenHarmony 3.1 Beta5  API 9
31
32**解决措施**
33
34Stage模型支持了通过context获取resourceManager对象的方式,再调用其内部获取资源的接口,无需再导入包。此方式不适用于FA模型。
35
36**代码示例**
37
38```
39const context = getContext(this) as any
40context
41  .resourceManager
42  .getString($r('app.string.entry_desc').id)
43  .then(value => {
44    this.message = value.toString()
45})
46```
47
48## 如何通过接口获取resource目录的路径
49
50适用于:Openharmony 3.1 Beta5 API 9
51
52**问题现象**
53
54希望获取resource目录的路径,从而使用文件管理接口操作文件。
55
56**解决措施**
57
58由于应用以hap形式进行安装,安装完成后不会解压hap包,所以在程序运行时无法获取resource路径。
59
60可以考虑如下两种方式获取资源文件:
61
621. 使用\$r或者\$rawfile访问。适合静态访问,程序运行时不改变资源路径。
63
642. 使用ResourceManage访问。适合动态访问,程序运行时可动态改变资源路径。
65
66**参考链接**
67
68[资源分类与访问](../quick-start/resource-categories-and-access.md) [资源管理](../reference/apis/js-apis-resource-manager.md)
69
70## 资源管理内的getPluralString方法获取value值有误
71
72适用于:OpenHarmony 3.2 Beta5  API 9
73
74**问题现象**
75
76getPluralString接口获取value值有误,显示复数值(other)。
77
78**解决措施**
79
80getPluralString接口只支持英文系统,不支持中文。
81
82## 如何获取resources目录中自定义的string字段
83
84适用于:OpenHarmony 3.2 Beta5  API 9
85
86**解决措施**
87
88使用ResourceManager模块的getStringValue方法获取。
89
90**参考链接**
91
92[资源管理](../reference/apis/js-apis-resource-manager.md#getstringvalue9)
93
94## AppScope中的资源如图片,文字等如何引用
95
96适用于:OpenHarmony 3.2 Beta5  API 9
97
98**解决措施**
99
100通过\$r\('app.type.name'\)的形式来引用,type代表资源类型,如color,string,media等,name代表资源命名。
101
102## Resource类型如何转为String
103
104适用于:OpenHarmony 3.2 Beta5  API 9
105
106**解决措施**
107
108Resource为string支持限定词目录使用this.context.resourceManager.getStringSync\(\$r\('app.string.test'\).id\),可以同步转换,不支持\$r\('app.string.test', 2\)方式。
109
110**参考链接**
111
112[ResourceManager\(资源管理\)](../reference/apis/js-apis-resource-manager.md#getstringsync9)
113
114## form\_config.json文件中是否可以使用$引用常量
115
116适用于:OpenHarmony 3.2 Beta5  API 9
117
118form\_config.json文件中不支持使用\$引用常量。
119