HarmonyOS 鸿蒙Next RichEditorController的getSpans方法内的图片信息和资源对应不上

发布于 1周前 作者 eggper 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next RichEditorController的getSpans方法内的图片信息和资源对应不上

通过RichEditorController的getSpans获取当前Editor中的内容,将其中的ImageSpan筛选出来,与本地图片资源文件(例如:$r(“app.media.rb_v1_emoji_smileface”))相匹配。

this.richController.getSpans({
start: -1,
end: -1
}).forEach(item => {
if (typeof (item as RichEditorImageSpanResult)['imageStyle'] != 'undefined') {
const valueResourceStr = (item as RichEditorImageSpanResult).valueResourceStr
let emojiIcon: string = ""
//匹配表情
RBLiveRoomMessageDispatch.getChatManager()?.emojisData.smallTabModel?.emoticons.forEach((item) => {
// 目前用ID近似的匹配,但是打包成har包,获取不到资源id
if (valueResourceStr?.toString().includes(`${item.imageId}`)) {
emojiIcon = `[${item.enName}]`
content += emojiIcon
}
})
} else {
content += (item as RichEditorTextSpanResult).value;
}
})

更多关于HarmonyOS 鸿蒙Next RichEditorController的getSpans方法内的图片信息和资源对应不上的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

可以将图片资源放到rawfile文件夹下,再通过getSpan获取valueResourceStr字段,能够正常获取到图片的名称

更多关于HarmonyOS 鸿蒙Next RichEditorController的getSpans方法内的图片信息和资源对应不上的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,Next RichEditorController的getSpans方法用于获取文本编辑器中的富文本信息,包括文本样式、图片等。如果图片信息和资源对应不上,通常是由于以下几个原因:

  1. 资源ID不匹配:确保传递给RichEditor的图片资源ID与资源文件中定义的ID一致。

  2. 资源加载问题:检查资源文件是否已正确放置在指定目录,并且资源格式符合系统要求。

  3. 图片缓存问题:系统可能缓存了旧的图片资源,尝试清除缓存或重启应用。

  4. Span类型错误:确认getSpans方法返回的Span类型是否正确,特别是当处理图片Span时,应确保返回的是ImageSpan或其子类。

  5. 资源路径问题:如果图片资源是通过网络加载的,检查URL是否正确,以及网络请求是否成功。

  6. 版本兼容性问题:确认当前使用的HarmonyOS版本与RichEditorController的API版本兼容。

针对上述问题,逐一排查并修正。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部