掌桥专利:专业的专利平台
掌桥专利
首页

一种页面切换时的悬浮窗添加方法、装置、设备及介质

文献发布时间:2023-06-19 16:04:54



技术领域

本公开涉及计算机技术领域,具体而言,涉及一种页面切换时的悬浮窗添加方法、装置、设备及介质。

背景技术

在终端设备(例如手机)中,可以通过显示悬浮窗的方式为用户提供一些快捷操作,例如快速打开应用界面。

通常,悬浮窗可以包括在普通客户端页面上的悬浮窗,以及在应用开发人员打开的调试页面(或称开发过程中的页面,简称开发页面)上的悬浮窗。针对第二种,该悬浮窗是一种不需要授予系统显示权限即可使用的悬浮窗。但是在切换页面时,会出现切换后的页面中的悬浮窗在短暂消失后再出现的情况,从而产生页面闪烁感,影响开发人员的调试工作。

发明内容

本公开实施例至少提供一种页面切换时的悬浮窗添加方法、装置、设备及介质。

第一方面,本公开实施例提供了一种页面切换时的悬浮窗添加方法,包括:

响应于在包含目标悬浮窗的第一页面跳转到第二页面的触发操作,在所述第二页面对应的根节点视图中创建初始代理视图;

根据所述目标悬浮窗的绘制信息,在所述初始代理视图中绘制所述目标悬浮窗,得到显示有所述目标悬浮窗的目标代理视图;

将所述目标悬浮窗对应的目标悬浮窗视图添加到所述目标代理视图中,以使得所述目标悬浮窗支持预设的交互功能;所述目标悬浮窗视图用于响应针对所述目标悬浮窗的交互操作。

一种可选的实施方式中,所述在所述第二页面对应的根节点视图中创建初始代理视图,包括:

获取所述目标悬浮窗在所述第一页面对应的根节点视图中的位置信息;

基于所述位置信息,在所述第二页面对应的根节点视图中的对应位置处,创建所述初始代理视图。

一种可选的实施方式中,所述方法还包括:

响应于获取到针对所述目标悬浮窗的更新后的绘制信息;

基于所述更新后的绘制信息,在所述目标代理视图中重新绘制所述目标悬浮窗。

一种可选的实施方式中,所述将所述目标悬浮窗对应的目标悬浮窗视图添加到所述目标代理视图中,包括:

将所述目标悬浮窗对应的目标悬浮窗视图从所述第一页面对应的根节点视图中移除,并将该目标悬浮窗视图添加到所述第二页面的目标代理视图中。

一种可选的实施方式中,所述方法还包括:

响应于在所述第二页面触发的页面返回操作,判断返回到的所述第一页面中的根节点视图中是否存在所述目标代理视图;

在确定所述第一页面中的根节点视图中存在所述目标代理视图后,将所述目标悬浮窗对应的目标悬浮窗视图从所述第二页面对应的根节点视图中移除,并将该目标悬浮窗视图添加到所述第一页面的目标代理视图中。

一种可选的实施方式中,将所述目标悬浮窗对应的目标悬浮窗视图添加到所述目标代理视图中之后,所述方法还包括:

响应于针对所述目标悬浮窗的移动操作,移动所述初始代理视图,并在移动后的所述初始代理视图中重新绘制所述目标悬浮窗,得到移动后的目标代理视图,以及将所述目标悬浮窗视图移动到移动后的所述目标代理视图中。

一种可选的实施方式中,所述绘制信息中包括所述目标悬浮窗的大小、所述目标悬浮窗的形状、所述目标悬浮窗中的显示内容中的至少一种。

第二方面,本公开实施例还提供一种页面切换时的悬浮窗添加装置,包括:

创建模块,用于响应于在包含目标悬浮窗的第一页面跳转到第二页面的触发操作,在所述第二页面对应的根节点视图中创建初始代理视图;

第一绘制模块,用于根据所述目标悬浮窗的绘制信息,在所述初始代理视图中绘制所述目标悬浮窗,得到显示有所述目标悬浮窗的目标代理视图;

添加模块,用于将所述目标悬浮窗对应的目标悬浮窗视图添加到所述目标代理视图中,以使得所述目标悬浮窗支持预设的交互功能;所述目标悬浮窗视图用于响应针对所述目标悬浮窗的交互操作。

第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

本公开实施例提供的一种页面切换时的悬浮窗添加方法,通过在从第一页面跳转到第二页面的过程中,在第二页面对应的根节点视图中创建初始代理视图,使用初始代理视图代理第一页面中目标悬浮窗视图原本具有的绘制功能,在第二页面中绘制出目标悬浮窗,如此,可以避免由于目标悬浮窗视图需要先从第一页面中移除,再在第二页面绘制目标悬浮窗所导致的目标悬浮窗短暂消失后再出现的现象。并且在初始代理视图中绘制完目标悬浮窗(指的是悬浮窗呈现出来的内容)之后,再将目标悬浮窗对应的目标悬浮窗视图(不需要呈现出来的功能)添加到目标代理视图中,这样可以使得目标悬浮窗预设的交互功能也迁移到第二页面中,不影响开发人员的调试工作。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了相关技术中在页面切换时,添加悬浮窗的原理示意图;

图2示出了本公开实施例所提供的一种页面切换时的悬浮窗添加方法的流程图;

图3示出了本公开实施例所提供的在页面切换时,添加悬浮窗的原理示意图;

图4示出了本公开实施例所提供的一种悬浮窗的效果示意图;

图5示出了本公开实施例所提供的一种页面切换时的悬浮窗添加装置的示意图;

图6示出了本公开实施例所提供的一种计算机设备的示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

在普通终端设备(即面向普通用户所使用的终端设备)上所使用的悬浮窗,通常需要用户授予系统显示权限。授予系统显示权限后,在打开悬浮窗的情况下,普通终端设备就可以显示悬浮窗。通常,安装有Android安卓操作系统的调试终端设备上的调试悬浮窗是不需要授予系统显示权限的。在打开悬浮窗的时候,上述调试终端设备中会预先创建一个绘制有悬浮窗的悬浮窗视图(悬浮窗View),然后把悬浮窗View添加到当前页面的DecorView根节点视图上。如图1所示的相关技术中在页面切换时,添加悬浮窗的原理示意图中,悬浮窗所在的悬浮窗View会先从页面A的DecorView中移除,然后添加到页面B的DecorView中,这样,就会呈现出悬浮窗悬浮在页面上方的效果。但是这种做法会出现悬浮窗所在的悬浮窗View已经从页面A中移除,但是还未添加到页面B的短暂间隔时刻,导致出现悬浮窗短暂消失后再出现的现象,从而产生页面闪烁感,容易影响开发人员的调试工作。

基于此,本公开提供了一种页面切换时的悬浮窗添加方法,通过在从第一页面跳转到第二页面的过程中,在第二页面对应的根节点视图中创建初始代理视图,使用初始代理视图代理第一页面中目标悬浮窗视图原本具有的绘制功能,在第二页面中绘制出目标悬浮窗,如此,可以避免由于目标悬浮窗视图需要先从第一页面中移除,再在第二页面绘制目标悬浮窗所导致的目标悬浮窗短暂消失后再出现的现象。并且在初始代理视图中绘制完目标悬浮窗(指的是悬浮窗呈现出来的内容)之后,再将目标悬浮窗对应的目标悬浮窗视图(不需要呈现出来的功能)添加到目标代理视图中,这样可以使得目标悬浮窗预设的交互功能也迁移到第二页面中,不影响开发人员的调试工作。

针对以上方案所存在的缺陷以及所提出的解决方案,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

首先说明,本公开实施例所公开的一种页面切换时的悬浮窗添加方法、装置、设备及介质适用于开发人员在设计/调试页面的时候,在页面中添加悬浮窗的场景。

为便于对本实施例进行理解,首先对本公开实施例所公开的一种页面切换时的悬浮窗添加方法进行详细介绍,本公开实施例所提供的页面切换时的悬浮窗添加方法的执行主体一般为具有一定计算能力的计算机设备。

下面以执行主体为终端设备为例对本公开实施例提供的页面切换时的悬浮窗添加方法加以说明。

参见图2所示,为本公开实施例提供的一种页面切换时的悬浮窗添加方法的流程图,所述方法包括S201~S203,其中:

S201:响应于在包含目标悬浮窗的第一页面跳转到第二页面的触发操作,在所述第二页面对应的根节点视图中创建初始代理视图。

这里,第一页面和第二页面可以指应用开发过程中打开的设计页面或调试页面,也即,第一页面可以指第一开发页面,第二页面可以指第二开发页面。在本公开实施例中,触发操作可以指触发的从包含目标悬浮窗的第一页面跳转到第二页面的操作。示例性地,触发操作可以包括在第一页面上触发的滑动操作,其中,滑动操作可以包括任意方向上的滑动操作,在不同的第一页面上触发的滑动方向是可以不同的。示例性地,触发操作还可以包括在页面跳转按钮上触发的点击操作,其中,页面跳转按钮是指从第一页面跳转到第二页面的按钮,页面跳转按钮可以是设置在终端设备上的真实按钮,也可以是设置在第一页面上的虚拟按钮。示例性地,触发操作还可以包括对第一页面上的目标展示元素触发的点击操作,其中,目标展示元素可以指展示在第一页面上的任何形式的内容元素,例如应用图标、图片、视频、网址链接、配置有内链的文本(内链用于链接到第二页面)等。在具体实施中,可以响应于对目标展示元素的触发操作,从包含有上述至少一种目标展示元素的第一页面跳转到第二页面,第二页面可以为展示目标展示元素的详情内容的页面等。在其它实施方式中,触发操作还可以包括其他形式的触发操作,例如摇晃终端设备的操作、语音控制操作等。这里需要说明的是,其他任何可能的触发操作都应当在本公开要求保护的范围之内。

第一页面和第二页面均有对应的根节点视图。根节点视图中可以包含多个层级的视图,根节点视图与多个层级的视图可以构成一个树结构的视图。

如图3所示,在响应从第一页面跳转到第二页面的触发操作之前,第一页面对应的根节点视图中可以包括目标代理视图和目标悬浮窗视图。其中,目标悬浮窗可以是绘制在第一页面的目标代理视图上的。第一页面对应的根节点视图可以通过目标代理视图,使得目标悬浮窗展示在第一页面中。目标悬浮窗视图可以响应于针对目标悬浮窗的交互操作,使得目标悬浮窗支持预设的交互功能。这里需要说明的是,在图3中,目标代理视图和目标悬浮窗视图的位置可以是相同,即目标代理视图和目标悬浮窗视图可以是叠在一起的,为了标示出目标悬浮窗视图,这里目标代理视图和目标悬浮窗视图的位置没有完全重叠。在第二开发界面是新打开的界面的情况下,第二开发界面对应的根节点视图中可以是不包含目标代理视图以及目标悬浮窗视图的。

在本公开实施例的执行主体终端设备为安装有Android操作系统的终端设备的情况中,第一页面和第二页面对应的根节点视图可以为DecorView,目标悬浮窗视图可以为悬浮窗View。

如图3所示,在响应从第一页面跳转到第二页面的触发操作的过程中,可以先在第二页面的根节点视图中创建初始代理视图。第二页面创建的初始代理视图可以用于绘制目标悬浮窗,并且在一种实施方式中,初始代理视图可以是一种无法用于响应针对目标悬浮窗的交互操作的代理视图,也就是初始代理视图只代理了目标悬浮窗视图的绘制功能。其中,在一种实施方式中,可以通过将目标悬浮窗视图也添加到第二页面对应的根节点视图的方式,使得在初始代理视图上绘制完成的目标悬浮窗能够支持预设的交互功能,该过程将在后文进行详述。

为了在从第一页面跳转到第二页面的过程中,呈现出目标悬浮窗一直悬浮在页面上方的效果,第二页面中展示出来的目标悬浮窗相对于第二页面对应的根节点视图的位置,与第一页面中展示出来的目标悬浮窗相对于第一页面对应的根节点视图的位置可以是相同的。因此,在一种实施方式中,在创建初始代理视图的时候,可以获取目标悬浮窗在第一页面对应的根节点视图中的位置信息,然后基于该位置信息,在第二页面对应的根节点视图中的对应位置处,创建初始代理视图。

这里,示例性地,目标悬浮窗在第一页面对应的根节点视图中的位置信息可以是目标悬浮窗在第一页面对应的根节点视图的坐标信息。利用创建的初始代理视图绘制的目标悬浮窗在根节点视图的位置,与第一页面中目标悬浮窗在根节点视图的位置是一样的。

这里需要说明的是,为了在从第一页面跳转到第二页面的过程中,呈现出的目标悬浮窗一直悬浮在页面上方的效果更好,在创建初始代理视图并且利用初始代理视图绘制完成目标悬浮窗之前,第一页面中的目标悬浮窗可以是一直进行展示的,也就是第一页面中的目标代理视图和目标悬浮窗视图是一直存在的,如图3所示。如此,可以避免由于目标悬浮窗视图需要先从第一页面中移除,再在第二页面绘制目标悬浮窗所导致的目标悬浮窗短暂消失后再出现的现象。

如前所述,在第二页面创建的初始代理视图可以用于绘制目标悬浮窗,具体绘制过程可以参见本公开实施例包含的S202的步骤。

S202:根据所述目标悬浮窗的绘制信息,在所述初始代理视图中绘制所述目标悬浮窗,得到显示有所述目标悬浮窗的目标代理视图。

在本公开实施例中,绘制目标悬浮窗所使用的绘制信息可以是开发人员预先设置好的,例如开发人员可以预先开发绘制目标悬浮窗所使用的绘制代码。在具体实施中,在初始代理视图中绘制目标悬浮窗的时候,初始代理视图可以直接调用第一页面中的目标悬浮窗所使用的绘制信息。也就是,在初始代理视图中绘制目标悬浮窗所使用的绘制信息与在第一页面中的目标悬浮窗所使用的绘制信息是一样的。如此,可以使得在第二页面上显示出来的目标悬浮窗与在第一页面上显示出来的目标悬浮窗是一样的,从而可以呈现出目标悬浮窗一直悬浮在页面上方的效果。

其中,目标悬浮窗的绘制信息可以包括目标悬浮窗的大小、目标悬浮窗的形状、目标悬浮窗中的显示内容中的至少一种。

根据目标悬浮窗的绘制信息中包含的目标悬浮窗的大小和/或目标悬浮窗的形状,可以在初始代理视图中绘制出与目标悬浮窗视图上大小、形状一样的目标悬浮窗。根据目标悬浮窗的绘制信息中包含的目标悬浮窗中的显示内容,可以使得在初始代理视图中绘制出的目标悬浮窗包含的显示内容与第一页面上的目标悬浮窗包含的显示内容一样。

在其他实施方式中,目标悬浮窗的绘制信息还可以包括其他绘制信息,例如目标悬浮窗的颜色、目标悬浮窗的显示模式、显示内容的字体大小、显示内容在目标悬浮窗中的位置信息等。这里需要说明的是,其他任何可能的绘制信息都应当在本公开要求保护的范围之内。

因此,绘制完成目标悬浮窗之后,就可以得到第二页面中的目标代理视图。第二页面中的目标悬浮窗与第一页面中的目标悬浮窗是一样的。但值得注意的是,目标代理视图中的目标悬浮窗是不支持预设的交互功能的悬浮窗,这是因为创建的初始代理视图以及得到的目标代理视图都是仅具有绘制功能的视图,目标代理视图无法使得目标悬浮窗支持预设的交互功能。

因此,接下来,可以通过将目标悬浮窗视图也添加到第二页面对应的根节点视图的方式,使得目标代理视图中的目标悬浮窗支持预设的交互功能,具体地,可以将目标悬浮窗视图添加到位于第二页面对应的根节点视图中的目标代理视图中。具体过程可以参见本公开实施例包含的S203的步骤。

S203:将所述目标悬浮窗对应的目标悬浮窗视图添加到所述目标代理视图中,以使得所述目标悬浮窗支持预设的交互功能;所述目标悬浮窗视图用于响应针对所述目标悬浮窗的交互操作。

为了保证在第一页面完全跳转到第二页面之前,第二页面上的目标悬浮窗与第一页面上的目标悬浮窗所支持的预设交互功能不会相互影响,在一种实施方式中,可以将目标悬浮窗对应的目标悬浮窗视图从第一页面对应的根节点视图中移除,并将该目标悬浮窗视图添加到第二页面的目标代理视图中。

由于目标悬浮窗对应的目标悬浮窗视图可以响应于针对目标悬浮窗的交互操作,因此,将目标悬浮窗视图添加到第二页面的目标代理视图中,可以使得目标代理视图中的目标悬浮窗支持预设的交互功能,并且,将目标悬浮窗对应的目标悬浮窗视图从第一页面对应的根节点视图中移除后,如图3所示,第一页面对应的根节点视图中就不再包含目标悬浮窗视图,第一页面中的目标悬浮窗将不再支持预设的交互功能。

为了使得目标代理视图中的目标悬浮窗所支持的预设交互功能不受影响,在一种实施方式中,目标悬浮窗对应的目标悬浮窗视图可以添加到与目标代理视图相同的位置,也就是目标悬浮窗视图在第二页面对应的根节点视图中的位置,与目标代理视图在第二页面对应的根节点视图中的位置是相同的。在一种实施方式中,目标悬浮窗视图可以添加到目标代理视图的下方,目标代理视图用于显示目标悬浮窗,目标悬浮窗视图用于响应针对目标悬浮窗的交互操作,使得显示在第二页面中的目标悬浮窗能够与显示在第一页面中的目标悬浮窗在显示效果没有差别,并且交互功能也没有差别。

在将目标悬浮窗对应的目标悬浮窗视图添加到目标代理视图后,在终端设备仅显示第二页面之前,第一页面的根节点视图中可以一直保留目标代理视图,直至终端设备中仅显示第二页面为止。

在终端设备中仅显示第二页面的情况下,第一页面可能会被终端设备中的系统从后台缓存中移除,也可能不会移除。在第一页面被移除的情况下,第一页面中的目标代理视图也会被移除;在第一页面不被移除的情况下,第一页面中的目标代理视图也不会被移除。因此,在具体实施过程中,本公开实施例还可以包括以下步骤:

响应于在第二页面触发的页面返回操作,判断返回到的第一页面中的根节点视图中是否存在目标代理视图。然后,在确定第一页面中的根节点视图中存在目标代理视图后,将目标悬浮窗对应的目标悬浮窗视图从第二页面对应的根节点视图中移除,并将该目标悬浮窗视图添加到第一页面的目标代理视图中。

这里,页面返回操作可以指从第二页面返回到第一页面的操作。示例性地,页面返回操作可以是与前文中从第一页面跳转到第二页面的触发操作对应的滑动方向相反的滑动操作,例如从第一页面跳转到第二页面的触发操作是向右滑的操作,页面返回操作可以是向左滑的操作。示例性地,页面返回操作可以包括在页面返回按钮上触发的点击操作,其中,页面返回按钮可以是设置在终端设备上的真实按钮,例如可以返回到主屏幕的Home起始键,也可以是设置在第二页面上的虚拟按钮。在其他实施方式中,页面返回操作还可以包括其他形式的操作,例如语音控制操作等。这里需要说明的是,其他任何可能的页面返回操作都应当在本公开要求保护的范围之内。

其中,在一种方式中,第一页面中的根节点视图中存在的目标代理视图可以是历史触发从包含目标悬浮窗的第三开发页面(第三开发页面可以是不同于第一页面、第二页面的页面)跳转到第一页面的操作的时候,在第一页面中的根节点视图中创建的、并绘制有目标悬浮窗的代理视图。

在确定第一页面中的根节点视图中存在目标代理视图后,即可以不用再重复创建初始代理视图并绘制得到目标代理视图,其中,将目标悬浮窗对应的目标悬浮窗视图从第二页面对应的根节点视图中移除,并将该目标悬浮窗视图添加到第一页面的目标代理视图中的过程,与前述将目标悬浮窗对应的目标悬浮窗视图从第一页面对应的根节点视图中移除,并将该目标悬浮窗视图添加到第二页面的目标代理视图中的过程类似,这里不再赘述。

在将目标悬浮窗对应的目标悬浮窗视图添加到目标代理视图中之后,用户可以在第二页面中移动目标悬浮窗。在移动目标悬浮窗的过程中,目标悬浮窗视图与目标代理视图都是需要被移动的,并且目标悬浮窗视图与目标代理视图被移动的方向和距离等信息可以是相同的。具体地,在一种实施方式中,本公开实施例还可以包括以下步骤:响应于针对目标悬浮窗的移动操作,移动初始代理视图,并在移动后的初始代理视图中重新绘制目标悬浮窗,得到移动后的目标代理视图,以及将目标悬浮窗视图移动到移动后的目标代理视图中。

这里,可以是响应于针对第二页面中目标悬浮窗的移动操作。示例性地,移动操作可以包括对目标悬浮窗的拖动操作等。在具体实施中,可以在移动过程中,实时获取移动操作对应的移动属性信息。其中,移动属性信息可以包括移动距离和移动方向等信息。然后根据移动属性信息,移动在第二页面中创建的初始代理视图,并根据目标悬浮窗的绘制信息,在移动后的初始代理视图中重新绘制目标悬浮窗,得到移动后的目标代理视图。并且,还可以根据上述移动属性信息,将目标悬浮窗视图移动到移动后的目标代理视图中。

考虑到用户在第二页面移动目标悬浮窗的过程,一边移动目标悬浮窗,一边与目标悬浮窗发生交互的可能性不太大,因此,在本公开实施例中,可以是重新绘制目标悬浮窗,得到移动后的目标代理视图之后,才将目标悬浮窗视图移动到移动后的目标代理视图中的。

在其他实施方式中,也可以是响应于针对目标悬浮窗的移动操作,移动初始代理视图,并在移动初始代理视图的同时,将目标悬浮窗视图移动到初始代理视图中,然后在移动后的初始代理视图中重新绘制目标悬浮窗,得到移动后的目标代理视图。

考虑到在移动目标悬浮窗的过程,目标悬浮窗的大小、形状和显示内容等信息可能不会发生变化,可以无需重新绘制目标悬浮窗,因此,在一种实施方式中,还可以响应于针对目标悬浮窗的移动操作,移动目标代理视图,并将目标悬浮窗对应的目标悬浮窗视图移动到移动后的目标代理视图中。

基于与前述相同的考虑,即用户在第二页面移动目标悬浮窗的过程,一边移动目标悬浮窗,一边与目标悬浮窗发生交互的可能性不太大,在其他实施方式中,也可以是响应于针对目标悬浮窗的移动操作,并在移动目标代理视图的同时,将目标悬浮窗视图移动到目标代理视图中。

上述实施例介绍了将目标悬浮窗对应的目标悬浮窗视图添加到第二页面中的目标代理视图中之后,在第二页面中移动目标悬浮窗的过程。在从第一页面跳转到第二页面之前,用户在第一页面中移动目标悬浮窗的过程与上述在第二页面中移动目标悬浮窗的过程可以是类似的。并且在终端设备上显示任何包含有目标悬浮窗的开发页面的情况下,移动目标悬浮窗的过程都与上述在第二页面中移动目标悬浮窗的过程类似,这里不再赘述。

考虑到目标悬浮窗对应的绘制信息可以是变化的,例如开发人员重新设置了目标悬浮窗的大小、形状、显示内容等信息,此时,目标悬浮窗相当进行相应的调整。在一种实施方式中,可以响应于获取到针对目标悬浮窗的更新后的绘制信息;然后,基于更新后的绘制信息,在目标代理视图中重新绘制目标悬浮窗。

这里,更新后的绘制信息例如可以是开发人员重新设置的。该过程可以发生在从第一页面跳转到第二页面之前,终端设备上仅显示包含有目标悬浮窗的第一页面的过程中,也可以发生在从第一页面跳转到第二页面之后,终端设备上仅显示包含有目标悬浮窗的第二页面的过程中。

而在从第一页面跳转到第二页面的过程中,如果开发人员重新设置了目标悬浮窗对应的绘制信息,在一种方式中,在第一页面中的目标代理视图以及第二页面中的目标代理视图中,都使用更新前的绘制信息绘制目标悬浮窗,在完成从第一页面跳转到第二页面之后,终端设备上仅显示第二页面的时候,再基于更新后的绘制信息,在第二页面的目标代理视图中重新绘制目标悬浮窗。

以终端设备为手机为例,如图4所示,为本公开实施例提供的一种悬浮窗的效果示意图,从左向右看,第一张图中,在手机屏幕中仅展示主界面的情况下,目标悬浮窗位于手机屏幕的中间位置;第二张图是在触发从右向左的滑动操作的过程中,在手机屏幕中同时展示出了主界面和地图界面,在这种情况下,目标悬浮窗还是位于手机屏幕的中间位置;第三张图中,在手机屏幕中仅展示地图界面的情况下,目标悬浮窗仍然位于手机屏幕的中间位置。由此,呈现出了目标悬浮窗一直悬浮在手机屏幕中间位置的效果。

本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

基于同一发明构思,本公开实施例中还提供了与页面切换时的悬浮窗添加方法对应的页面切换时的悬浮窗添加装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述页面切换时的悬浮窗添加方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

参照图5所示,为本公开实施例提供的一种页面切换时的悬浮窗添加装置的架构示意图,所述装置包括:创建模块501、第一绘制模块502、添加模块503;其中,

创建模块501,用于响应于在包含目标悬浮窗的第一页面跳转到第二页面的触发操作,在所述第二页面对应的根节点视图中创建初始代理视图;

第一绘制模块502,用于根据所述目标悬浮窗的绘制信息,在所述初始代理视图中绘制所述目标悬浮窗,得到显示有所述目标悬浮窗的目标代理视图;

添加模块503,用于将所述目标悬浮窗对应的目标悬浮窗视图添加到所述目标代理视图中,以使得所述目标悬浮窗支持预设的交互功能;所述目标悬浮窗视图用于响应针对所述目标悬浮窗的交互操作。

一种可选的实施方式中,创建模块501,具体用于:

获取所述目标悬浮窗在所述第一页面对应的根节点视图中的位置信息;

基于所述位置信息,在所述第二页面对应的根节点视图中的对应位置处,创建所述初始代理视图。

一种可选的实施方式中,所述装置还包括:

响应模块,用于响应于获取到针对所述目标悬浮窗的更新后的绘制信息;

第二绘制模块,用于基于所述更新后的绘制信息,在所述目标代理视图中重新绘制所述目标悬浮窗。

一种可选的实施方式中,添加模块503,具体用于:

将所述目标悬浮窗对应的目标悬浮窗视图从所述第一页面对应的根节点视图中移除,并将该目标悬浮窗视图添加到所述第二页面的目标代理视图中。

一种可选的实施方式中,所述装置还包括:

判断模块,用于响应于在所述第二页面触发的页面返回操作,判断返回到的所述第一页面中的根节点视图中是否存在所述目标代理视图;

移动模块,用于在确定所述第一页面中的根节点视图中存在所述目标代理视图后,将所述目标悬浮窗对应的目标悬浮窗视图从所述第二页面对应的根节点视图中移除,并将该目标悬浮窗视图添加到所述第一页面的目标代理视图中。

一种可选的实施方式中,所述装置还包括:

移动模块,用于响应于针对所述目标悬浮窗的移动操作,移动所述初始代理视图,并在移动后的所述初始代理视图中重新绘制所述目标悬浮窗,得到移动后的目标代理视图,以及将所述目标悬浮窗视图移动到移动后的所述目标代理视图中。

一种可选的实施方式中,所述绘制信息中包括所述目标悬浮窗的大小、所述目标悬浮窗的形状、所述目标悬浮窗中的显示内容中的至少一种。

关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。

基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图6所示,为本公开实施例提供的计算机设备600的结构示意图,包括处理器601、存储器602、和总线603。其中,存储器602用于存储执行指令,包括内存6021和外部存储器6022;这里的内存6021也称内存储器,用于暂时存放处理器601中的运算数据,以及与硬盘等外部存储器6022交换的数据,处理器601通过内存6021与外部存储器6022进行数据交换,当计算机设备600运行时,处理器601与存储器602之间通过总线603通信,使得处理器601在执行以下指令:

响应于在包含目标悬浮窗的第一页面跳转到第二页面的触发操作,在所述第二页面对应的根节点视图中创建初始代理视图;

根据所述目标悬浮窗的绘制信息,在所述初始代理视图中绘制所述目标悬浮窗,得到显示有所述目标悬浮窗的目标代理视图;

将所述目标悬浮窗对应的目标悬浮窗视图添加到所述目标代理视图中,以使得所述目标悬浮窗支持预设的交互功能;所述目标悬浮窗视图用于响应针对所述目标悬浮窗的交互操作。

本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的页面切换时的悬浮窗添加方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。

本公开实施例还提供一种计算机程序产品,该计算机产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的页面切换时的悬浮窗添加方法的步骤,具体可参见上述方法实施例,在此不再赘述。

其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种页面切换时的悬浮窗添加方法、装置、设备及介质
  • 页面切换时黑屏的处理方法、装置和计算机可读存储介质
技术分类

06120114691767