1、如何遍历rawfiles中的文件
A:使用Native API中的OH_ResourceManager_OpenRawDir()方法获取到rawfile的根目录,然后对其进行遍历。
2、怎么读取rawfile里的文件
A:引用rawfile下资源时使用"$rawfile('filename')"的形式,filename需要表示为rawfile目录下的文件相对路径,文件名需要包含后缀,路径开头不可以以"/"开头。
3、如何读取rawfile中的xml文件并转化为String类型
A:通过resourceManager的getRawFileContent接口获取xml数据,再通过util工具函数中的decodeWithStream接口将获取的数据转化为String类型。
4、如何通过接口获取resource目录的路径
A:由于应用以HAP形式进行安装,安装完成后不会解压HAP包,所以在程序运行时无法获取resource路径。
可以考虑如下两种方式获取资源文件:
-
使用$r或者$rawfile访问。适合静态访问,程序运行时不改变资源路径。
-
使用ResourceManage访问。适合动态访问,程序运行时可动态改变资源路径。
5、资源管理内的getPluralString方法获取value值有误
A:getPluralString接口只支持英文系统,不支持中文。
6、如何获取resources目录中自定义的string字段
A:使用ResourceManager模块的getStringValue方法获取。
7、Resource类型如何转为String
A:Resource为string支持限定词目录使用this.context.resourceManager.getStringSync($r('app.string.test').id),可以同步转换,不支持$r('app.string.test', 2)方式。
8、数字支持货币分隔符显示吗
A:可以通过NumberFormat去设置数字的显示格式
let numfmt = new Intl.NumberFormat(); console.info(`numfmt: ${numfmt.format(1000000)}`);
9、$r() 这个获取资源的接口的参数只能是固定的字符串,不能使用字符串类型的变量吗
A:$r()是编译时处理,不支持程序运行时动态改变,运行时推荐使用ResourceManage对资源文件进行访问。
10、如何使用实现汉字转拼音
A:可以通过Transliterator来转换汉字成拼音。
参考代码如下:
import { i18n } from '@kit.LocalizationKit'; let transliterator = i18n.Transliterator.getInstance("Any-Latn"); let res: string = transliterator.transform("中国"); // res = "zhōng guó"
11、如何将文件转换成字符串
A:如下
-
获取resources/rawfile目录下对应的rawfile文件内容。
-
调用util模块的TextDecoder将字节数组解码为字符串。
-
对Uint8Array解码。
更多详情查看:文档中心