问题描述:
在hsp模块中的页面使用getContext(this).resourceManager.getRawFileContentSync('xxx')
无法读取到Hsp模块resources -> rawfile
里的文件文件, 但是把文件放在主模块中的rawfile
中可以正常读取到
原因分析:
猜测模块之间有隔离机制。
解决方案:
把getContext(this).resourceManager.getRawFileContentSync('xxx')
修改为this.context.createModuleContext('library').resourceManager.getRawFileContentSync("xxx.js")
具体demo方法如下,附加json格式解析
static rawFile(context:common.UIAbilityContext){
let data:Uint8Array = context.createModuleContext("polestarsdk").resourceManager.getRawFileContentSync("privacyconfig.json")
try {
let json = String.fromCharCode(...data)
console.info("fromCharCode = " + json);
let textDecoderOptions: util.TextDecoderOptions = {
// fatal: false,
ignoreBOM : true
}
let decodeWithStreamOptions: util.DecodeWithStreamOptions = {
stream: false
}
let textDecoder = util.TextDecoder.create('utf-8', textDecoderOptions);
let retStr = textDecoder.decodeWithStream(data , decodeWithStreamOptions);
console.info("retStr = " + retStr);
let bufferStr = buffer.from(data.buffer);
console.info("bufferStr = " + bufferStr);
}catch (e){
console.info('Cktest ' + JSON.stringify(e))
}
}