页面显示处理方法、装置、设备、相关介质及程序产品与流程

摘要: 本公开涉及计算机领域,特别是涉及一种页面显示处理方法、装置、设备、相关介质及程序产品。背景技术:1、在计算机领域,调用方应用往往需要在页面上显示各类页面元素,从...
页面显示处理方法、装置、设备、相关介质及程序产品与流程

本公开涉及计算机领域,特别是涉及一种页面显示处理方法、装置、设备、相关介质及程序产品。

背景技术:

1、在计算机领域,调用方应用往往需要在页面上显示各类页面元素,从而实现内容展示、对象交互等目的,例如在线文档页面需要显示形状、文本框、图片、表格、图表等类型的页面元素。受限于开发成本和开发周期,调用方应用内置的渲染引擎往往仅能支持渲染较为简单的页面元素(如形状、文本框、图片等),而无法渲染较为复杂的页面元素(如图表等)。

2、针对于此,在相关技术提供的方案中,通常是接入成熟的第三方渲染引擎,由第三方渲染引擎负责渲染较为复杂的页面元素。然而,由于第三方渲染引擎与调用方应用内置的渲染引擎是两种不同的渲染引擎,第三方渲染引擎所渲染出的页面元素(称为第一页面元素)与调用方应用内置的渲染引擎所渲染出的页面元素(称为第二页面元素)之间通常无法调整层级,很容易出现显示出错的问题,例如第一页面元素错误地覆盖了第二页面元素。

技术实现思路

1、本公开实施例提供了一种页面显示处理方法、装置、设备、相关介质及程序产品,能够提升页面上页面元素的显示准确性。

2、根据本公开的一方面,提供了一种页面显示处理方法,包括:

3、响应于在调用方应用上显示页面的请求,从所述请求中获取与调用方渲染引擎的第一格式不兼容的第一页面元素;

4、通过第三方渲染引擎,构建所述第一页面元素对应的第一渲染树,所述第一渲染树包括多个第一渲染节点,所述第一渲染节点与所述第三方渲染引擎的第二格式兼容;

5、从所述第三方渲染引擎获取所述第一渲染树;

6、将所述第一渲染树中的所述第一渲染节点转换为第二渲染节点,得到包括多个所述第二渲染节点的第二渲染树,所述第二渲染节点与所述第一格式兼容;

7、通过所述调用方渲染引擎,基于所述第二渲染树中的多个所述第二渲染节点,利用所述第一格式渲染所述第一页面元素,以在所述调用方应用上显示所述页面。

8、根据本公开的一方面,提供了一种页面显示处理装置,包括:

9、页面元素获取模块,用于响应于在调用方应用上显示页面的请求,从所述请求中获取与调用方渲染引擎的第一格式不兼容的第一页面元素;

10、渲染树构建模块,用于通过第三方渲染引擎,构建所述第一页面元素对应的第一渲染树,所述第一渲染树包括多个第一渲染节点,所述第一渲染节点与所述第三方渲染引擎的第二格式兼容;

11、渲染树获取模块,用于从所述第三方渲染引擎获取所述第一渲染树;

12、渲染树转换模块,用于将所述第一渲染树中的所述第一渲染节点转换为第二渲染节点,得到包括多个所述第二渲染节点的第二渲染树,所述第二渲染节点与所述第一格式兼容;

13、渲染树应用模块,用于通过所述调用方渲染引擎,基于所述第二渲染树中的多个所述第二渲染节点,利用所述第一格式渲染所述第一页面元素,以在所述调用方应用上显示所述页面。

14、在上述方案中,页面显示处理装置还包括事件交互模块,用于:

15、接收针对所述第一页面元素的第一交互事件;

16、通过所述第三方渲染引擎,根据所述第一交互事件更新所述第一渲染树,以根据更新后的所述第一渲染树,重新渲染所述第一页面元素。

17、在上述方案中,所述事件交互模块,还用于:

18、确定所述第一交互事件的事件类型;

19、在多个所述第一渲染节点中,确定已注册所述事件类型对应事件处理接口的第一事件消费节点;

20、将所述第一交互事件传递至所述第一事件消费节点注册的所述事件处理接口,以通过所述事件处理接口对所述第一交互事件执行交互动作,所述交互动作用于更新所述第一渲染树。

21、在上述方案中,所述事件交互模块,还用于:

22、在多个所述第一渲染节点中,确定触发所述第一交互事件的第一事件源节点;

23、当所述第一事件源节点已注册所述事件处理接口时,将所述第一事件源节点确定为所述第一事件消费节点;

24、当所述第一事件源节点未注册所述事件处理接口时,在所述第一事件源节点的祖先节点中,确定已注册所述事件处理接口的所述第一事件消费节点。

25、在上述方案中,所述事件交互模块,还用于:

26、通过所述调用方渲染引擎,在多个所述第二渲染节点中,确定触发所述第一交互事件的第二事件源节点;

27、通过所述第三方渲染引擎,查询所述调用方渲染引擎所确定的所述第二事件源节点,并将用于转换得到所述第二事件源节点的所述第一渲染节点,确定为触发所述第一交互事件的所述第一事件源节点。

28、在上述方案中,所述事件交互模块,还用于:

29、确定所述第一交互事件在所述页面上的交互位置;

30、确定多个所述第二渲染节点分别对应的渲染位置;

31、确定与所述交互位置匹配成功的所述渲染位置,并将匹配成功的所述渲染位置所对应的所述第二渲染节点,确定为触发所述第一交互事件的所述第二事件源节点。

32、在上述方案中,页面显示处理装置还包括离屏渲染模块,用于:

33、通过所述调用方渲染引擎,基于所述第二渲染树中的多个所述第二渲染节点,利用所述第一格式离屏渲染所述第一页面元素,以生成离屏页面,多个所述第二渲染节点在所述离屏页面上分别对应不同的节点色值;

34、所述事件交互模块,还用于:

35、确定所述第一交互事件在所述离屏页面上的交互位置,并将所述离屏页面上与所述交互位置对应的色值确定为交互色值;

36、确定与所述交互色值匹配成功的所述节点色值,并将匹配成功的所述节点色值所对应的所述第二渲染节点,确定为触发所述第一交互事件的所述第二事件源节点。

37、在上述方案中,所述事件交互模块,还用于:

38、确定所述第一交互事件在所述页面上的交互位置;

39、确定多个所述第一渲染节点分别对应的渲染位置;

40、确定与所述交互位置匹配成功的所述渲染位置,并将匹配成功的所述渲染位置所对应的所述第一渲染节点,确定为触发所述第一交互事件的所述第一事件源节点。

41、在上述方案中,所述第一交互事件的事件类型为目标调用方事件类型,所述事件交互模块,还用于:

42、在多种通用事件类型中,确定与所述目标调用方事件类型对应的目标通用事件类型,其中,目标调用方事件类型是多种调用方事件类型中的一种,多种所述调用方事件类型分别对应不同的所述通用事件类型;

43、将所述第一交互事件的所述事件类型从所述目标调用方事件类型更新为所述目标通用事件类型。

44、在上述方案中,所述页面元素获取模块,还用于:

45、从所述请求中获取与所述第一格式兼容的第二页面元素;

46、所述渲染树构建模块,还用于:

47、通过所述调用方渲染引擎,构建所述第二页面元素对应的第三渲染树,所述第三渲染树包括多个第三渲染节点,所述第三渲染节点与所述第一格式兼容;

48、所述渲染树应用模块,还用于:

49、通过所述调用方渲染引擎,基于所述第三渲染树中的多个所述第三渲染节点,利用所述第一格式渲染所述第二页面元素。

50、在上述方案中,所述页面显示处理装置还包括事件交互模块,用于:

51、接收针对所述第二页面元素的第二交互事件;

52、通过所述调用方渲染引擎,根据所述第二交互事件更新所述第三渲染树,以根据更新后的所述第三渲染树,重新渲染所述第二页面元素。

53、在上述方案中,所述渲染树转换模块,还用于:

54、将所述第一渲染树中的第一根渲染节点,转换为挂载于页面容器的第二根渲染节点,所述页面容器从属于所述页面;

55、所述渲染树应用模块,还用于:

56、通过所述调用方渲染引擎,基于所述第二渲染树中的多个所述第二渲染节点,利用所述第一格式将所述第一页面元素渲染至所述页面容器,以在所述调用方应用上显示所述页面。

57、在上述方案中,所述页面显示处理装置还包括更新显示模块,用于:

58、通过所述第三方渲染引擎,对所述第一渲染树进行更新;

59、从所述第三方渲染引擎获取更新信息,所述更新信息用于表示更新后的所述第一渲染树与更新前的所述第一渲染树之间的差异信息;

60、通过所述调用方渲染引擎,根据所述更新信息对所述第二渲染树进行更新,以根据更新后的所述第二渲染树,重新渲染所述第一页面元素。

61、在上述方案中,所述页面显示处理装置还包括存储模块,用于:

62、对所述第二渲染树进行存储处理;

63、所述页面显示处理装置还包括复用模块,用于:

64、响应于在所述调用方应用上重新显示所述页面的请求,获取存储的所述第二渲染树,通过所述调用方渲染引擎,基于所述第二渲染树中的多个所述第二渲染节点,利用所述第一格式渲染所述第一页面元素,以在所述调用方应用上重新显示所述页面。

65、在上述方案中,所述渲染树获取模块,还用于:

66、通过所述第三方渲染引擎,将所述第一渲染树通过渲染上下文接口发送,所述渲染上下文接口由所述调用方渲染引擎创建;

67、通过所述调用方渲染引擎,通过所述渲染上下文接口接收所述第一渲染树。

68、在上述方案中,所述第三方渲染引擎封装于软件开发工具包,所述渲染树获取模块,还用于:

69、通过所述调用方渲染引擎,调用所述软件开发工具包提供的接口,以获取所述软件开发工具包输出的所述第一渲染树。

70、根据本公开的一方面,提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的页面显示处理方法。

71、根据本公开的一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的页面显示处理方法。

72、根据本公开的一方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被电子设备的处理器读取并执行,使得所述电子设备执行如上所述的页面显示处理方法。

73、本公开实施例中,响应于在调用方应用上显示页面的请求,从请求中获取与调用方渲染引擎的第一格式不兼容的第一页面元素。考虑到调用方渲染引擎并不具有构建第一页面元素对应的渲染树的能力,因此,本公开实施例通过第三方渲染引擎,构建第一页面元素对应的第一渲染树。第一渲染树包括有多个第一渲染节点,第一渲染节点与第三方渲染引擎的第二格式兼容,而不与调用方渲染引擎的第一格式兼容,故第一渲染节点无法被调用方渲染引擎识别并利用。基于此,将第一渲染树中的第一渲染节点转换为第二渲染节点,得到包括多个第二渲染节点的第二渲染树,第二渲染节点与调用方渲染引擎的第一格式兼容,这样,就能够将与调用方渲染引擎的第一格式不兼容的第一渲染树转换为相兼容的第二渲染树。最终,通过调用方渲染引擎,基于第二渲染树中的多个第二渲染节点,利用第一格式渲染第一页面元素,以在调用方应用上显示页面。由于第一页面元素是通过调用方渲染引擎渲染的,因此能够支持自由地调整显示层级,避免与其他页面元素之间产生错误覆盖问题,即本公开实施例能够提升页面上页面元素的显示准确性。

74、本公开的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。