文本渲染方法、系统、计算机设备及介质技术方案

技术编号:38155062 阅读:16 留言:0更新日期:2023-07-13 09:22
本申请公开了一种文本渲染方法、系统、计算机设备及介质,通过将输入的模板消息拆分为若干个字符串数组,并对该字符串数组进行解析、累加及格式转换,从而生成一个TextSpan数组后,对TextSpan数组进行渲染的方式实现了可对输出模板信息的文本信息以及格式信息进行单独提取后进行同步的遍历、累加、转换以及渲染处理,并整合渲染出带有所述格式信息的文本信息后通过Whatsapp Business API进行输出,且由于渲染出的最终文本信息中自带文本信息以及以字符形式保存的格式信息,因此在进行渲染时可直接引用格式信息进行渲染,达到无需生成用于渲染的HTML文本也可在Whatsapp Business API进行输出,解决了现有技术当中的其他平台创建的模板消息无法在Whatsapp Business API平台内对文本中的特殊格式进行渲染的问题。渲染的问题。渲染的问题。

【技术实现步骤摘要】
文本渲染方法、系统、计算机设备及介质


[0001]本申请涉及文本渲染领域,尤其涉及一种文本渲染方法、系统、计算机设备及介质。

技术介绍

[0002]Whatsapp Business是Whatsapp提供的商业版API服务,商家在使用该服务时可通过Whatsapp Business API上的设定模板来输入营销文本后,将编辑完成的营销文本发送给用户,其中Whatsapp Business API上的设定模板支持营销文本的正文加粗、斜体和删除线等特殊格式的设定,从而使用户发出的营销文本可渲染上特殊格式;
[0003]其中,为了达到文本渲染的效果,用户在上述设定模板的编辑过程中还必须同时在Whatsapp Business API平台创建一段包含特殊格式的HTML文本来用于文本的渲染,这就导致了当用户希望通过其他平台创建的模板消息来发送带特殊格式渲染的营销文本时,Whatsapp Business API平台会由于缺失上述的HTML文本导致无法对营销文本进行特殊格式渲染,且由于Whatsapp未公开技术文档和解析算法,因此开发人员也无法对上述HTML文本进行反向解析使用,导致了开发者使用的不便,因此如何实现一种可在Whatsapp Business API平台上对其他平台创建的模板消息进行渲染的文本渲染方法,成了一个急需解决的问题。
[0004]申请内容
[0005]基于此,有必要针对上述问题,提出了一种可对其他平台创建的模板消息进行渲染输出的文本渲染方法、系统、计算机设备及介质。
[0006]本申请提供了一种文本渲染方法,包括:
[0007]获取输入的模板消息,并对所述模板消息中的正文字符串进行提取,并将所述正文字符串进行拆分,从而形成若干个字符串数组;
[0008]将所述字符串数组进行循环遍历,从而输出一个二维数组,所述二维数组用于储存所述字符串数组经由循环遍历后输出的文本信息以及格式信息;
[0009]调用预设reduce高阶函数,从而将所述二维数组累加成一维数组;
[0010]调用预设transformSpans函数,从而将所述一维数组中的所述文本信息以及格式信息转换成TextSpan数组;
[0011]使用预设Flutter框架内部的RichText组件作为渲染容器来对所述TextSpan数组进行渲染后,通过Whatsapp Business API进行输出。
[0012]进一步的,所述提取输入模板消息中的正文字符串,并将所述正文字符串进行拆分,从而形成若干个字符串数组的步骤,具体包括:
[0013]提取所述模板消息中的正文字符串,并对所述正文字符串中的分割字符进行识别;
[0014]以所述分割字符为起点将所述正文字符串进行拆分,从而生成所述字符串数组。
[0015]进一步的,所述遍历所述字符串数组,从而将所述字符串数组解析为一个二维数
组,所述二维数组用于储存所述字符串数组中的文本信息以及对应的格式信息的步骤,具体包括:
[0016]提取所述字符串数组内各个节点的节点类型,并在所述节点类型添加起始字符标签以及结尾字符标签,从而生成与所述节点匹配的节点类型信息;
[0017]提取所述字符串数组内所述节点的字符串参数;
[0018]获取设定的节点接收数组,所述节点接收数组用于储存解析后的所述字符串参数;
[0019]将各个所述字符串参数以及所述节点类型信息进行遍历处理,并将输出结果储存在所述节点接收数组中,当各个所述字符串参数的遍历处理均结束后所述节点接收数组即为所述二维数组。
[0020]进一步的,所述提取所述字符串数组内各个节点的节点类型,并在所述节点类型添加起始字符标签以及结尾字符标签,从而生成与所述节点匹配的节点类型信息的步骤,具体包括:
[0021]提取所述字符串数组内各个节点的节点类型,并在所述节点类型添加起始字符标签以及结尾字符标签;
[0022]判断所述起始字符标签和所述结尾字符标签是否都为特殊格式字符;
[0023]若是,则判定所述节点类型信息修改为与所述特殊格式字符匹配的特殊字符类型一致。
[0024]进一步的,所述将各个所述字符串参数以及所述节点类型信息进行遍历处理,并将输出结果储存在所述节点接收数组中的步骤,具体包括:
[0025]将所述字符串参数中的各个字符记为要素标记n,并将所述要素标记n储存到所述节点对象中,所述n的初始值为1;
[0026]提取所述要素标记n中的node.body请求,并判断其中的所述node请求是否为空格符;
[0027]若是,则判断所述要素标记n是否与为所述节点类型信息中的一种,若是,则标记所述要素标记n与所述起始字符标签一致,并将所述要素标记n添加到所述节点接收数组中;
[0028]判断所述要素标记n是否为所述处理字符串中最后一个字符,若否,则令n=n+1后返回所述提取所述要素标记n中的node.body请求的步骤,直到完成所有所述要素标记n的匹配为止,此时所述节点接收数组即为所述二维数组。
[0029]进一步的,所述提取所述要素标记n中的node.body请求的步骤之后,还包括:
[0030]判断所述node请求以及所述body请求之间是否满足所述node请求不是空格符同时所述body请求内存在字符信息;
[0031]若是,则判断所述要素标记n是否与为所述节点类型信息中的一种;
[0032]若是,则判断所述body请求中是否以空格符结尾;
[0033]若是,则实例一个新node请求,并将所述新node请求以空格符开始同时将所述要素标记n记为与所述节点类型信息一致,并所述要素标记n添加到所述节点接收组中;
[0034]判断所述要素标记n是否为所述处理字符串中最后一个字符,若否,则令n=n+1后返回所述提取所述要素标记n中的node.body请求的步骤,直到完成所有所述要素标记n的
匹配为止,此时所述节点接收数组即为所述二维数组。
[0035]进一步的,所述提取所述要素标记n中的node.body请求的步骤之后,还包括:
[0036]判断所述要素标记n是否满足所述node请求以空格符开始同时对应的所述起始字符标签存在数值;
[0037]若是,则判断所述要素标记n是否与所述结尾字符标签一致;
[0038]若否,则将所述结尾字符标签添加到所述body请求后,将所述要素标记n记为普通字符并添加到所述节点接收组中;
[0039]判断所述要素标记n是否为所述处理字符串中最后一个字符,若否,则令n=n+1后返回所述提取所述要素标记n中的node.body请求的步骤,直到完成所有所述要素标记n的匹配为止,此时所述节点接收数组即为所述二维数组。
[0040]本申请还提供一种文本渲染系统,包括:
[0041]获取单元,用于获取输入的模板消息,并对所述模板消息中的正文字符串进行提取,并将本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种文本渲染方法,其特征在于,包括:获取输入的模板消息,并对所述模板消息中的正文字符串进行提取,并将所述正文字符串进行拆分,从而形成若干个字符串数组;将所述字符串数组进行循环遍历,从而输出一个二维数组,所述二维数组用于储存所述字符串数组经由循环遍历后输出的文本信息以及格式信息;调用预设reduce高阶函数,从而将所述二维数组累加成一维数组;调用预设transformSpans函数,从而将所述一维数组中的所述文本信息以及格式信息转换成TextSpan数组;使用预设Flutter框架内部的RichText组件作为渲染容器来对所述TextSpan数组进行渲染后,通过Whatsapp Business API进行输出。2.如权利要求1所述的文本渲染方法,其特征在于,所述提取输入模板消息中的正文字符串,并将所述正文字符串进行拆分,从而形成若干个字符串数组的步骤,具体包括:提取所述模板消息中的正文字符串,并对所述正文字符串中的分割字符进行识别;以所述分割字符为起点将所述正文字符串进行拆分,从而生成所述字符串数组。3.如权利要求1所述的文本渲染方法,其特征在于,所述遍历所述字符串数组,从而将所述字符串数组解析为一个二维数组,所述二维数组用于储存所述字符串数组中的文本信息以及对应的格式信息的步骤,具体包括:提取所述字符串数组内各个节点的节点类型,并在所述节点类型添加起始字符标签以及结尾字符标签,从而生成与所述节点匹配的节点类型信息;提取所述字符串数组内所述节点的字符串参数;获取设定的节点接收数组,所述节点接收数组用于储存解析后的所述字符串参数;将各个所述字符串参数以及所述节点类型信息进行遍历处理,并将输出结果储存在所述节点接收数组中,当各个所述字符串参数的遍历处理均结束后所述节点接收数组即为所述二维数组。4.如权利要求3所述的文本渲染方法,其特征在于,所述提取所述字符串数组内各个节点的节点类型,并在所述节点类型添加起始字符标签以及结尾字符标签,从而生成与所述节点匹配的节点类型信息的步骤,具体包括:提取所述字符串数组内各个节点的节点类型,并在所述节点类型添加起始字符标签以及结尾字符标签;判断所述起始字符标签和所述结尾字符标签是否都为特殊格式字符;若是,则判定所述节点类型信息修改为与所述特殊格式字符匹配的特殊字符类型一致。5.如权利要求3所述的文本渲染方法,其特征在于,所述将各个所述字符串参数以及所述节点类型信息进行遍历处理,并将输出结果储存在所述节点接收数组中的步骤,具体包括:将所述字符串参数中的各个字符记为要素标记n,并将所述要素标记n储存到所述节点对象中

n的初始值为1;提取所述要素标记n中的node.body请求,并判断其中的所述node请求是否为空格符;若是,则判断所述要素标记n是否与为所述节点类型信息中的一种,若是,则标记所述
要素标记n与所述起始字符标签一致,并将所述要素标记n添加到所述节点接收数组中;判断所述要素标记n是否为所述处理字符串中最后...

【专利技术属性】
技术研发人员:蒋鹏
申请(专利权)人:深圳市小满科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1