CN113867870A - 弹窗管理系统、弹窗控制方法、存储介质、计算机设备 - Google Patents
弹窗管理系统、弹窗控制方法、存储介质、计算机设备 Download PDFInfo
- Publication number
- CN113867870A CN113867870A CN202111153958.0A CN202111153958A CN113867870A CN 113867870 A CN113867870 A CN 113867870A CN 202111153958 A CN202111153958 A CN 202111153958A CN 113867870 A CN113867870 A CN 113867870A
- Authority
- CN
- China
- Prior art keywords
- popup
- view
- pop
- display
- window
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 230000007704 transition Effects 0.000 claims abstract description 12
- 238000012544 monitoring process Methods 0.000 claims description 28
- 230000008859 change Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 230000000694 effects Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请公开了一种弹窗管理系统、弹窗控制方法、存储介质、计算机设备,该系统包括:至少一个弹窗功能模块以及弹窗管理模块,所述弹窗管理模块通过API接口与所述弹窗功能模块连接,所述弹窗管理模块包括视图控制器以及弹窗控制单元,所述弹窗控制单元封装有转场管理类;所述弹窗功能模块,用于设置弹窗视图配置项;所述视图控制器,用于提供弹窗视图展示方法和弹窗视图关闭方法,以及构建目标视图,并按所述弹窗视图配置项将所述目标视图配置为弹窗视图;所述弹窗控制单元,用于调用所述视图控制器提供的弹窗视图展示方法控制所述弹窗视图的展示,以及调用所述视图控制器提供的所述弹窗视图关闭方法控制所述弹窗视图的关闭。
Description
技术领域
本申请涉及计算机技术领域,尤其是涉及到一种弹窗管理系统、弹窗控制方法、存储介质、计算机设备。
背景技术
当前,为了满足不同用户需求和增加用户粘性,智能手机应用的功能越来越多,很多功能通过嵌入三方SDK来实现,或项目使用组件化开发,各模块按功能划分,页面相对独立。很多软件中都存在多弹窗视图同时展示的情况,现有技术中,页面展示时是实时获取当前最顶部视图的rootviewController根视图控制器,通过系统接口显示出要展示的弹窗窗口,使要展示的窗口始终保持在最顶部,需要同时显示不同模块的窗口时,因为各模块显示方法不统一,会争抢加到windows的最顶部视图或更换windows句柄,造成窗口图层很混乱,各功能的弹窗视图会互相干扰,导致页面异常。
发明内容
有鉴于此,本申请提供了一种弹窗管理系统、弹窗控制方法、存储介质、计算机设备。
根据本申请的一个方面,提供了一种弹窗管理系统,所述系统包括:
至少一个弹窗功能模块以及弹窗管理模块,所述弹窗管理模块通过API接口与所述弹窗功能模块连接,所述弹窗管理模块包括视图控制器以及弹窗控制单元,所述弹窗控制单元封装有转场管理类;
所述弹窗功能模块,用于设置弹窗视图配置项;
所述视图控制器,用于提供弹窗视图展示方法和弹窗视图关闭方法,以及构建目标视图,并按所述弹窗视图配置项将所述目标视图配置为弹窗视图;
所述弹窗控制单元,用于调用所述视图控制器提供的弹窗视图展示方法控制所述弹窗视图的展示,以及调用所述视图控制器提供的所述弹窗视图关闭方法控制所述弹窗视图的关闭。
可选地,所述弹窗控制单元,还用于对展示所述弹窗视图添加弱引用,并将所述弹窗视图添加至弱引用表中,以及将关闭的弹窗视图从所述弱引用表中移除。
可选地,所述视图控制器,还用于通过继承基类对所述目标视图中的预设监听事件添加监听,在监听到所述预设监听事件发生时,确定所述弹窗视图对应的子视图配置项,以及构建目标子视图,并按所述子视图配置项将所述目标子视图配置为子弹窗视图;
所述弹窗控制单元,还用于依据所述弹窗视图对应的预设展示元素位置以及所述子弹窗视图对应的展示位置,确定预设展示元素是否被遮挡,并在确定所述预设展示元素被遮挡时,对所述弹窗视图或所述子弹窗视图进行调整。
可选地,所述预设监听事件包括输入事件;
所述视图控制器,具体用于对所述目标视图中的所述输入事件添加监听,在监听到所述输入事件发生时,确定所述弹窗视图对应的键盘配置项,以及构建键盘子视图,并按所述键盘配置项将所述键盘子视图配置为键盘弹窗视图;
所述弹窗控制单元,具体用于依据所述弹窗视图对应的输入框的位置以及键盘弹窗视图展示位置,确定所述输入框是否被遮挡,并在确定所述输入框被遮挡时,移动和/或缩放所述弹窗视图。
可选地,所述弹窗功能模块,还用于配置对应的弹窗功能模块标识;
所述弹窗控制单元,还用于将展示的所述弹窗视图添加至与所述弹窗视图的弹窗功能模块标识对应的弱引用表中,以及在接收到关闭全部弹窗视图的指令时,依据各弱引用表对应的最顶层弹窗视图至最底层弹窗视图的顺序,依次关闭弹窗视图,并清空各弱引用表。
可选地,所述弹窗控制单元,还用于接收所述弹窗视图对应的传入参数,比较所述传入参数与所述弹窗视图配置项,确定所述弹窗视图对应的变更参数,并依据所述变更参数对所述弹窗视图进行调整。
可选地,所述变更参数包括所述弹窗视图的窗口大小缩放参数时,所述弹窗控制单元保持所述弹窗视图的中心坐标位置不变,按所述窗口大小缩放参数对所述弹窗视图进行缩放。
可选地,所述系统还包括:
导航控制器,用于依据客户端的显示界面方向,确定所述弹窗视图的展示方向,并控制所述弹窗视图的旋转。
根据本申请的另一方面,提供了一种弹窗控制方法,包括:
在预设弹窗显示事件发生时,获取所述预设弹窗显示事件对应的弹窗视图配置项;
利用视图控制器构建所述预设弹窗显示事件对应的目标视图,并按所述弹窗视图配置项将所述目标视图配置为弹窗视图;
通过弹窗控制单元调用所述视图控制器提供的弹窗视图展示方法,按所述弹窗视图展示方法控制所述弹窗视图的展示;
在所述弹窗视图对应的关闭事件发生时,通过所述弹窗控制单元调用所述视图控制器提供的弹窗视图关闭方法,按所述弹窗视图关闭方法控制所述弹窗视图的关闭。
可选地,所述按所述弹窗视图展示方法控制所述弹窗视图的展示之后,所述方法还包括:
对展示的所述弹窗视图添加弱引用,并将所述弹窗视图添加至弱引用表中;
相应地,所述按所述弹窗视图关闭方法控制所述弹窗视图的关闭之后,所述方法还包括:
从所述弱引用表中移除所述弹窗视图。
可选地,所述按所述弹窗视图配置项将所述目标视图配置为弹窗视图,具体包括:
通过继承基类对所述目标视图中的输入事件添加监听,并按所述弹窗视图配置项将添加监听后的目标视图配置为弹窗视图;
相应地,所述按所述弹窗视图配置项将所述目标视图配置为弹窗视图之后,所述方法还包括:
在监听到所述输入事件发生时,通过所述视图控制器确定所述弹窗视图对应的键盘配置项,构建键盘子视图,并按所述键盘配置项配置为键盘弹窗视图;
利用所述弹窗控制单元依据所述弹窗视图对应的输入框位置以及键盘弹窗视图展示位置,确定所述弹窗视图的输入框是否被所述键盘弹窗视图遮挡,以及若所述输入框被遮挡,则移动和/或缩放所述弹窗视图。
可选地,所述对展示的所述弹窗视图添加弱引用,并将所述弹窗视图添加至弱引用表中,具体包括:
确定所述弹窗视图对应的弹窗功能模块标识,并将所述弹窗视图添加至所述弹窗功能模块标识对应的弱引用表中;
相应地,所述从所述弱引用表中移除所述弹窗视图,具体包括:
从所述弹窗功能模块标识对应的弱引用表中移除所述弹窗视图。
可选地,所述将所述弹窗视图添加至所述弹窗功能模块标识对应的弱引用表中之后,所述方法还包括:
当发生对全部弹窗视图的关闭事件时,依据各弱引用表对应的最顶层弹窗视图至最底层弹窗视图的顺序,依次关闭弹窗视图,并清空各弱引用表。
可选地,所述按所述弹窗视图展示方法控制所述弹窗视图的展示之后,所述方法还包括:
当接收到与所述弹窗视图对应的传入参数时,所述弹窗控制单元根据所述弹窗视图对应的弹窗配置项以及所述传入参数,确定所述弹窗视图对应的变更参数;
依据所述变更参数,对所述弹窗视图进行调整。
依据本申请又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述弹窗控制方法。
依据本申请再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述弹窗控制方法。
借由上述技术方案,本申请提供的一种弹窗管理系统、弹窗控制方法、存储介质、计算机设备,弹窗管理系统包括通过接口连接的弹窗功能模块和弹窗管理模块,弹窗管理模块包括视图控制器和弹窗控制单元,通过视图控制器统一对外提供弹窗视图的展示和关闭方法,以及按弹窗功能模块中设置的弹窗视图配置项进行弹窗视图的配置,弹窗控制单元调用弹窗视图的展示和关闭方法控制弹窗视图的展示和关闭,以及对展示的弹窗视图添加弱引用,将其写入弱引用表中,以便基于弱引用表实现对弹窗视图的统一管理。相比于现有技术中各弹窗功能模块管理各自的弹窗视图的方式,本申请实施例通过视图控制器对外提供了统一的弹窗视图的展示和关闭方法,避免了各模块显示方法不统一造成弹窗视图窗口混乱,以及通过弹窗控制单元的转场管理类负责弹窗视图展示和关闭,支持弹窗视图中原生push、pop操作效果。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了本申请实施例提供的一种弹窗控制方法的流程示意图;
图2示出了本申请实施例提供的另一种弹窗控制方法的流程示意图;
图3示出了本申请实施例提供的一种弹窗控制装置的结构示意图;
图4示出了本申请实施例提供的另一种弹窗控制装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在本实施例中提供了一种弹窗管理系统,如图1所示,所述系统包括:
至少一个弹窗功能模块以及弹窗管理模块,所述弹窗管理模块通过API接口与所述弹窗功能模块连接,所述弹窗管理模块包括视图控制器以及弹窗控制单元,所述弹窗控制单元封装有转场管理类;
所述弹窗功能模块,用于设置弹窗视图配置项;
所述视图控制器,用于提供弹窗视图展示方法和弹窗视图关闭方法,以及构建目标视图,并按所述弹窗视图配置项将所述目标视图配置为弹窗视图;
所述弹窗控制单元,用于调用所述视图控制器提供的弹窗视图展示方法控制所述弹窗视图的展示,以及调用所述视图控制器提供的所述弹窗视图关闭方法控制所述弹窗视图的关闭。
在本申请实施例中,弹窗管理系统包括弹窗功能模块和弹窗管理模块,其中,弹窗功能模块能够单独命名并独立地完成一定功能的程序语句的集合,比如直播、登录、推广活动等,这些功能都涉及弹窗页面,会独立成各模块接入到项目中。每个页面预先设置弹窗视图配置项,具体可以包括弹窗视图大小、展示方向、是否添加键盘监听等弹窗视图配置信息。
弹窗管理模块具体可以包括视图控制器以及弹窗控制单元,并提供对外API接口与弹窗功能模块连接,通过接口实现弹窗管理模块和弹窗功能模块之间的通信连接。该实施例中可以通过建立统一BaseViewController构建视图控制器,视图控制器提供统一的视图展示和关闭方法。当预设弹窗显示事件发生时,即发生能够触发弹窗显示的事件时,视图控制器可以构建要显示的目标视图,其中,目标视图是指实现要展示的窗口内容页面,如调查页面,视图控制器根据弹窗视图配置项将目标视图配置为与弹窗视图大小、展示方向等匹配的弹窗视图,并将弹窗视图传入弹窗控制单元,弹窗控制单元通过调用视图控制器提供的弹窗视图展示方法,对该弹窗视图进行展示,同时对展示的弹窗视图添加弱引用并将其添加到弱引用表中,以实现对弹窗视图的统一管理。另外,在需要关闭弹窗视图时,弹窗控制单元可以在弱引用表中查找到相应的弹窗视图,并调用弹窗视图关闭方法,从弱引用表中移除该弹窗视图对象,确保窗口正确释放。
通过应用本实施例的技术方案,弹窗管理系统包括通过接口连接的弹窗功能模块和弹窗管理模块,弹窗管理模块包括视图控制器和弹窗控制单元,通过视图控制器统一对外提供弹窗视图的展示和关闭方法,以及按弹窗功能模块中设置的弹窗视图配置项进行弹窗视图的配置,弹窗控制单元调用弹窗视图的展示和关闭方法控制弹窗视图的展示和关闭,以及对展示的弹窗视图添加弱引用,将其写入弱引用表中,以便基于弱引用表实现对弹窗视图的统一管理。相比于现有技术中各弹窗功能模块管理各自的弹窗视图的方式,本申请实施例通过视图控制器对外提供了统一的弹窗视图的展示和关闭方法,避免了各模块显示方法不统一造成弹窗视图窗口混乱,以及通过弹窗控制单元的转场管理类负责弹窗视图展示和关闭,支持弹窗视图中原生push、pop操作效果。
本申请实施例中,可选地,所述弹窗控制单元,还用于对展示所述弹窗视图添加弱引用,并将所述弹窗视图添加至弱引用表中,以及将关闭的弹窗视图从所述弱引用表中移除。
在该实施例中,弹窗控制单元对弹窗视图进行展示的同时,还可以对展示的弹窗视图添加弱引用,并将添加了弱引用的弹窗视图添加到弱引用表中,以实现对弹窗视图的统一管理。另外,在需要关闭弹窗视图时,弹窗控制单元可以在弱引用表中查找到相应的弹窗视图,并调用弹窗视图关闭方法,从弱引用表中移除该弹窗视图对象,确保窗口正确释放。通过对弹窗视图添加弱引用并将其写入弱引用表的方式,方便对弹窗视图进行统一管理和销毁。
本申请实施例中,可选地,所述视图控制器,还用于通过继承基类对所述目标视图中的预设监听事件添加监听,在监听到所述预设监听事件发生时,确定所述弹窗视图对应的子视图配置项,以及构建目标子视图,并按所述子视图配置项将所述目标子视图配置为子弹窗视图;所述弹窗控制单元,还用于依据所述弹窗视图对应的预设展示元素位置以及所述子弹窗视图对应的展示位置,确定预设展示元素是否被遮挡,并在确定所述预设展示元素被遮挡时,对所述弹窗视图或所述子弹窗视图进行调整。
在上述实施例中,视图控制器可针对目标视图页面中的预设监听事件自动添加监听。在弹窗视图的展示过程中,若预设监听事件发生时,确定该预设监听事件对应的弹窗视图配置项,即弹窗视图对应的子视图配置项,并进行目标子视图的构建,以及子弹窗视图的配置,进一步,在对子弹窗视图进行展示之前,还可以判断子弹窗视图是否会对弹窗视图中的一些需要展示的预设展示元素造成遮挡,如果造成了遮挡,那么应对弹窗视图或者子弹窗视图的显示情况进行调整,以保证这些预定的元素不会因显示自弹窗视图而被遮挡。
可选地,所述预设监听事件包括输入事件;所述视图控制器,具体用于对所述目标视图中的所述输入事件添加监听,在监听到所述输入事件发生时,确定所述弹窗视图对应的键盘配置项,以及构建键盘子视图,并按所述键盘配置项将所述键盘子视图配置为键盘弹窗视图;所述弹窗控制单元,具体用于依据所述弹窗视图对应的输入框的位置以及键盘弹窗视图展示位置,确定所述输入框是否被遮挡,并在确定所述输入框被遮挡时,移动和/或缩放所述弹窗视图。
在上述实施例中,以预设监听事件为输入事件为例,视图控制器可以针对目标视图页面中所有输入事件自动添加键盘监听,当用户进行用户名、密码等输入操作时,会弹出键盘弹窗视图,为了确保键盘弹窗视图不会对输入框造成遮挡,可以根据键盘高度、输入框窗口弹窗大小、输入框窗口所在视图位置,计算输入框是否被遮挡,完成输入框弹窗页面上下移动等调整操作。如图2所示,当用户输入密码时,输入框会有被遮挡的情况,此时会先对输入框做坐标系转换,根据输入框窗口大小和H1(输入框底部位置)转换为输入框在整个屏幕中的底部位置(H2),比较H2(输入框底部坐标)和H3(键盘顶部坐标)大小,当H2大于H3时,说明输入框有遮挡,需要将整个输入框窗口向上移动H2-H3的距离,相反,H2小于等于H3时,说明输入框没被遮挡,可不做处理。弹窗主视图内的键盘子视图仍可使用原生push、pop方法完成页面切换,并无需处理键盘事件。
另外,预设监听事件还可以是点击事件、手势事件等,例如图2中当键盘弹出显示后,用户可以点击输入框和键盘外的任意空白位置,使键盘收回。或者弹窗视图页面,添加某种特殊图形手势,手势触发后弹出一些提示,给用户小的惊喜,增加互动性。需要注意的是,用户可以定义自弹窗视图能否对弹窗视图中的预设展示元素产生遮挡,如果自弹窗视图可以对相关元素产生遮挡,比如用户通过特定手势触发显示特效,特效效果会在短时间内自动消失,那么也可以不去判断预设展示元素是否被遮挡,直接进行自弹窗视图的配置和展示即可。
在本申请实施例中,可选地,所述弹窗功能模块,还用于配置对应的弹窗功能模块标识;所述弹窗控制单元,还用于将展示的所述弹窗视图添加至与所述弹窗视图的弹窗功能模块标识对应的弱引用表中,以及在接收到关闭全部弹窗视图的指令时,依据各弱引用表对应的最顶层弹窗视图至最底层弹窗视图的顺序,依次关闭弹窗视图,并清空各弱引用表。
在上述实施例中,可以对每个弹窗功能模块设置唯一标识即弹窗功能模块标识,从而依据唯一标识构建每个模块各自的弱引用表,将不同弹窗功能模块对应的弹窗视图添加到与该模块唯一标识对应的弱引用表中,便于对每个弹窗功能模块的弹窗视图进行管理。主动触发关闭弹框视图时,调用弹窗控制单元提供的关闭API接口,传入弹窗视图对应的弹窗功能模块的唯一标识,根据模块唯一标识,在对应的弱引用表中查找到该视图对象,针对该视图调用关闭方法,并从弱引用表中移除该弹窗视图对象,确保弹窗视图正确释放,也可以通过弹窗控制单元提供的接口,一次性关闭所有显示的弹窗视图,这种情况下可以按照各弱引用表中的弹窗视图添加顺序,从最顶层窗口到最底层依次执行关闭操作,依次关闭各弹窗视图,并清空弱引用表。需要说明的是,如不设置弹窗功能模块标识,可以将展示的弹窗视图添加到全局默认的弱引用中进行统一管理。
在本申请实施例中,可选地,所述弹窗控制单元,还用于接收所述弹窗视图对应的传入参数,比较所述传入参数与所述弹窗视图配置项,确定所述弹窗视图对应的变更参数,并依据所述变更参数对所述弹窗视图进行调整。
在上述实施例中,弹窗视图配置项具体可以包括弹窗视图的窗口大小、展示位置以及展示方向等参数,弹窗视图可以按上述参数进行配置和展示,另外,弹窗视图的窗口大小、展示位置以及展示方向也可以被调整。在弹窗视图显示后,可通过转场管理类,实现窗口视图大小动态调节。例如弹窗视图配置项中的窗口大小是全屏展示,可以根据用户操作改变窗口大小,将其转换为迷你模式展示,用户操作数据即传入参数具体可以通过弹窗功能模块传入弹窗控制单元,通过转场管理类提供的API接口,传入新的窗口大小,转场管理类会重新计算该窗口的大小及位置,重新渲染页面。在具体的应用场景中,传入参数可以包括多种类型,例如通过传入位置参数,自由改变弹窗页面窗口位置。
可选地,所述变更参数包括所述弹窗视图的窗口大小缩放参数时,所述弹窗控制单元保持所述弹窗视图的中心坐标位置不变,按所述窗口大小缩放参数对所述弹窗视图进行缩放。使缩放后的窗口和原有窗口的中心坐标保持一致,满足正常模式和迷你模式的切换。例如对展示直播画面的弹窗视图进行缩放时,可以通过点击直播页面上的按钮完成两种模式的切换,切换后的窗口中心位置保持一致,可以减少切换后位置改变产生的突兀感。
在本申请实施例中,可选地,还包括:导航控制器,用于依据客户端的显示界面方向,确定所述弹窗视图的展示方向,并控制所述弹窗视图的旋转。
在上述实施例中,可以通过建立navigationController导航控制器,统一处理弹窗视图的展示方向以及旋转操作,具体导航控制器可以通过读取当前显示界面的显示方向,将读取的方向作为弹窗视图的展示方向,例如对于横屏游戏可以确定弹窗视图的展示方向为横屏展示,另外还可以实时获取客户端例如手机的持有方向,从横向持有变为竖向持有时,弹窗页面也可以从横屏展示变为竖屏展示。
在本实施例中提供了一种弹窗控制方法,可应用于上述的弹窗管理系统中,如图3所示,该方法包括:
步骤101,在预设弹窗显示事件发生时,获取所述预设弹窗显示事件对应的弹窗视图配置项;
步骤102,利用视图控制器构建所述预设弹窗显示事件对应的目标视图,并按所述弹窗视图配置项将所述目标视图配置为弹窗视图;
步骤103,通过弹窗控制单元调用所述视图控制器提供的弹窗视图展示方法,按所述弹窗视图展示方法控制所述弹窗视图的展示;
步骤104,在所述弹窗视图对应的关闭事件发生时,通过所述弹窗控制单元调用所述视图控制器提供的弹窗视图关闭方法,按所述弹窗视图关闭方法控制所述弹窗视图的关闭。
在上述实施例中,在预设弹窗显示事件发生时,即发生能够触发弹窗显示的事件时,视图控制器可以构建要显示的目标视图,根据弹窗视图配置项将目标视图配置为与弹窗视图大小、展示方向等匹配的弹窗视图,并将弹窗视图传入弹窗控制单元,弹窗控制单元通过调用视图控制器提供的弹窗视图展示方法,对该弹窗视图进行展示,同时对展示的弹窗视图添加弱引用并将其添加到弱引用表中,以实现对弹窗视图的统一管理。另外,在需要关闭弹窗视图时,弹窗控制单元可以在弱引用表中查找到相应的弹窗视图,并调用弹窗视图关闭方法,从弱引用表中移除该弹窗视图对象,确保窗口正确释放。
进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,提供了另一种弹窗控制方法,如图4所示,该方法包括:
步骤201,在预设弹窗显示事件发生时,获取所述预设弹窗显示事件对应的弹窗视图配置项;
步骤202,利用视图控制器构建所述预设弹窗显示事件对应的目标视图,并通过继承基类对所述目标视图中的输入事件添加监听,按所述弹窗视图配置项将添加监听后的目标视图配置为弹窗视图;
步骤203,通过弹窗控制单元调用所述视图控制器提供的弹窗视图展示方法,按所述弹窗视图展示方法控制所述弹窗视图的展示;确定所述弹窗视图对应的弹窗功能模块标识,并将所述弹窗视图添加至所述弹窗功能模块标识对应的弱引用表中;
在上述实施例中,弹窗视图配置项具体可以包括弹窗视图的窗口大小、展示位置以及展示方向等参数,弹窗视图可以按上述参数进行配置和展示,另外,弹窗视图的窗口大小、展示位置以及展示方向也可以被调整。当预设弹窗显示事件发生时,即发生能够触发弹窗显示的事件时,获取对应的弹窗视图配置项,并利用视图控制器构建要显示的目标视图,并且视图控制器可通过继承基类对目标视图页面中的预设监听事件自动添加监听。进而,利用视图控制器将目标视图配置为与弹窗视图配置项匹配的弹窗视图,并将弹窗视图传入弹窗控制单元,通过弹窗控制单元调用视图控制器提供的弹窗视图展示方法,对该弹窗视图进行展示,同时对展示的弹窗视图添加弱引用并将其添加到弱引用表中,以实现对弹窗视图的统一管理。具体地,可以对每个弹窗功能模块设置唯一标识即弹窗功能模块标识,从而依据唯一标识构建每个模块各自的弱引用表,将不同弹窗功能模块对应的弹窗视图添加到与该模块唯一标识对应的弱引用表中,便于对每个弹窗功能模块的弹窗视图进行管理。
步骤204,在监听到所述输入事件发生时,通过所述视图控制器确定所述弹窗视图对应的键盘配置项,构建键盘子视图,并按所述键盘配置项配置为键盘弹窗视图;
步骤205,利用所述弹窗控制单元依据所述弹窗视图对应的输入框位置以及键盘弹窗视图展示位置,确定所述弹窗视图的输入框是否被所述键盘弹窗视图遮挡,以及若所述输入框被遮挡,则移动和/或缩放所述弹窗视图;
在上述实施例中,在弹窗视图的展示过程中,若预设监听事件发生时,确定该预设监听事件对应的弹窗视图配置项,即弹窗视图对应的子视图配置项,并进行目标子视图的构建,以及子弹窗视图的配置,进一步,在对子弹窗视图进行展示之前,还可以判断子弹窗视图是否会对弹窗视图中的一些需要展示的预设展示元素造成遮挡,如果造成了遮挡,那么应对弹窗视图或者子弹窗视图的显示情况进行调整,以保证这些预定的元素不会因显示自弹窗视图而被遮挡。
例如,当监听到用户进行用户名、密码等触发弹出键盘弹窗视图的输入事件时,为了确保键盘弹窗视图不会对输入框造成遮挡,可以根据键盘高度、输入框窗口弹窗大小、输入框窗口所在视图位置,计算输入框是否被遮挡,完成输入框弹窗页面上下移动等调整操作。
步骤206,当接收到与所述弹窗视图对应的传入参数时,所述弹窗控制单元根据所述弹窗视图对应的弹窗配置项以及所述传入参数,确定所述弹窗视图对应的变更参数;依据所述变更参数,对所述弹窗视图进行调整;
在上述实施例中,在弹窗视图显示后,可通过转场管理类,实现窗口视图大小动态调节。例如弹窗视图配置项中的窗口大小是全屏展示,可以根据用户操作改变窗口大小,将其转换为迷你模式展示,用户操作数据即传入参数具体可以通过弹窗功能模块传入弹窗控制单元,通过转场管理类提供的API接口,传入新的窗口大小,转场管理类会重新计算该窗口的大小及位置,并重新渲染页面,即确定变更参数,并利用变更参数实现对弹窗视图的调整。在具体的应用场景中,传入参数可以包括多种类型,例如通过传入位置参数,自由改变弹窗页面窗口位置。
步骤207,在所述弹窗视图对应的关闭事件发生时,通过所述弹窗控制单元调用所述视图控制器提供的弹窗视图关闭方法,按所述弹窗视图关闭方法控制所述弹窗视图的关闭,并从所述弹窗功能模块标识对应的弱引用表中移除所述弹窗视图;
步骤208,当发生对全部弹窗视图的关闭事件时,依据各弱引用表对应的最顶层弹窗视图至最底层弹窗视图的顺序,依次关闭弹窗视图,并清空各弱引用表。
在上述实施例中,主动触发关闭弹框视图时,即在弹窗视图对应的关闭事件发生时,可以调用弹窗控制单元提供的关闭API接口,传入弹窗视图对应的弹窗功能模块的唯一标识,根据模块唯一标识,在对应的弱引用表中查找到该视图对象,针对该视图调用关闭方法,并从弱引用表中移除该弹窗视图对象,确保弹窗视图正确释放。另外在监控到发生对全部弹窗视图的关闭事件时,可以通过弹窗控制单元提供的接口,一次性关闭所有显示的弹窗视图,这种情况下可以按照各弱引用表中的弹窗视图添加顺序,从最顶层窗口到最底层依次执行关闭操作,依次关闭各弹窗视图,并清空弱引用表。
基于上述如图3至图4所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述如图3至图4所示的弹窗控制方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
基于上述如图3至图4所示的方法,为了实现上述目的,本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图3至图4所示的弹窗控制方法。
可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(RadioFrequency,RF)电路,传感器、音频电路、WI-FI模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard)等,可选用户接口还可以包括USB接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、WI-FI接口)等。
本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理和保存计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。
Claims (15)
1.一种弹窗管理系统,其特征在于,所述系统包括:
至少一个弹窗功能模块以及弹窗管理模块,所述弹窗管理模块通过API接口与所述弹窗功能模块连接,所述弹窗管理模块包括视图控制器以及弹窗控制单元,所述弹窗控制单元封装有转场管理类;
所述弹窗功能模块,用于设置弹窗视图配置项;
所述视图控制器,用于提供弹窗视图展示方法和弹窗视图关闭方法,以及构建目标视图,并按所述弹窗视图配置项将所述目标视图配置为弹窗视图;
所述弹窗控制单元,用于调用所述视图控制器提供的弹窗视图展示方法控制所述弹窗视图的展示,以及调用所述视图控制器提供的所述弹窗视图关闭方法控制所述弹窗视图的关闭。
2.根据权利要求1所述的系统,其特征在于,
所述弹窗控制单元,还用于对展示所述弹窗视图添加弱引用,并将所述弹窗视图添加至弱引用表中,以及将关闭的弹窗视图从所述弱引用表中移除。
3.根据权利要求1所述的系统,其特征在于,
所述视图控制器,还用于通过继承基类对所述目标视图中的预设监听事件添加监听,在监听到所述预设监听事件发生时,确定所述弹窗视图对应的子视图配置项,以及构建目标子视图,并按所述子视图配置项将所述目标子视图配置为子弹窗视图;
所述弹窗控制单元,还用于依据所述弹窗视图对应的预设展示元素位置以及所述子弹窗视图对应的展示位置,确定预设展示元素是否被遮挡,并在确定所述预设展示元素被遮挡时,对所述弹窗视图或所述子弹窗视图进行调整。
4.根据权利要求3所述的系统,其特征在于,所述预设监听事件包括输入事件;
所述视图控制器,具体用于对所述目标视图中的所述输入事件添加监听,在监听到所述输入事件发生时,确定所述弹窗视图对应的键盘配置项,以及构建键盘子视图,并按所述键盘配置项将所述键盘子视图配置为键盘弹窗视图;
所述弹窗控制单元,具体用于依据所述弹窗视图对应的输入框的位置以及键盘弹窗视图展示位置,确定所述输入框是否被遮挡,并在确定所述输入框被遮挡时,移动和/或缩放所述弹窗视图。
5.根据权利要求2所述的系统,其特征在于,
所述弹窗功能模块,还用于配置对应的弹窗功能模块标识;
所述弹窗控制单元,还用于将展示的所述弹窗视图添加至与所述弹窗视图的弹窗功能模块标识对应的弱引用表中,以及在接收到关闭全部弹窗视图的指令时,依据各弱引用表对应的最顶层弹窗视图至最底层弹窗视图的顺序,依次关闭弹窗视图,并清空各弱引用表。
6.根据权利要求1所述的系统,其特征在于,
所述弹窗控制单元,还用于接收所述弹窗视图对应的传入参数,比较所述传入参数与所述弹窗视图配置项,确定所述弹窗视图对应的变更参数,并依据所述变更参数对所述弹窗视图进行调整。
7.根据权利要求1所述的系统,其特征在于,所述系统还包括:
导航控制器,用于依据客户端的显示界面方向,确定所述弹窗视图的展示方向,并控制所述弹窗视图的旋转。
8.一种弹窗控制方法,其特征在于,包括:
在预设弹窗显示事件发生时,获取所述预设弹窗显示事件对应的弹窗视图配置项;
利用视图控制器构建所述预设弹窗显示事件对应的目标视图,并按所述弹窗视图配置项将所述目标视图配置为弹窗视图;
通过弹窗控制单元调用所述视图控制器提供的弹窗视图展示方法,按所述弹窗视图展示方法控制所述弹窗视图的展示;
在所述弹窗视图对应的关闭事件发生时,通过所述弹窗控制单元调用所述视图控制器提供的弹窗视图关闭方法,按所述弹窗视图关闭方法控制所述弹窗视图的关闭。
9.根据权利要求8所述的方法,其特征在于,所述按所述弹窗视图展示方法控制所述弹窗视图的展示之后,所述方法还包括:
对展示的所述弹窗视图添加弱引用,并将所述弹窗视图添加至弱引用表中;
相应地,所述按所述弹窗视图关闭方法控制所述弹窗视图的关闭之后,所述方法还包括:
从所述弱引用表中移除所述弹窗视图。
10.根据权利要求8所述的方法,其特征在于,所述按所述弹窗视图配置项将所述目标视图配置为弹窗视图,具体包括:
通过继承基类对所述目标视图中的输入事件添加监听,并按所述弹窗视图配置项将添加监听后的目标视图配置为弹窗视图;
相应地,所述按所述弹窗视图配置项将所述目标视图配置为弹窗视图之后,所述方法还包括:
在监听到所述输入事件发生时,通过所述视图控制器确定所述弹窗视图对应的键盘配置项,构建键盘子视图,并按所述键盘配置项配置为键盘弹窗视图;
利用所述弹窗控制单元依据所述弹窗视图对应的输入框位置以及键盘弹窗视图展示位置,确定所述弹窗视图的输入框是否被所述键盘弹窗视图遮挡,以及若所述输入框被遮挡,则移动和/或缩放所述弹窗视图。
11.根据权利要求9所述的方法,其特征在于,所述对展示的所述弹窗视图添加弱引用,并将所述弹窗视图添加至弱引用表中,具体包括:
确定所述弹窗视图对应的弹窗功能模块标识,并将所述弹窗视图添加至所述弹窗功能模块标识对应的弱引用表中;
相应地,所述从所述弱引用表中移除所述弹窗视图,具体包括:
从所述弹窗功能模块标识对应的弱引用表中移除所述弹窗视图。
12.根据权利要求11所述的方法,其特征在于,所述将所述弹窗视图添加至所述弹窗功能模块标识对应的弱引用表中之后,所述方法还包括:
当发生对全部弹窗视图的关闭事件时,依据各弱引用表对应的最顶层弹窗视图至最底层弹窗视图的顺序,依次关闭弹窗视图,并清空各弱引用表。
13.根据权利要求8所述的方法,其特征在于,所述按所述弹窗视图展示方法控制所述弹窗视图的展示之后,所述方法还包括:
当接收到与所述弹窗视图对应的传入参数时,所述弹窗控制单元根据所述弹窗视图对应的弹窗配置项以及所述传入参数,确定所述弹窗视图对应的变更参数;
依据所述变更参数,对所述弹窗视图进行调整。
14.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求8至13中任一项所述的方法。
15.一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求8至13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111153958.0A CN113867870A (zh) | 2021-09-29 | 2021-09-29 | 弹窗管理系统、弹窗控制方法、存储介质、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111153958.0A CN113867870A (zh) | 2021-09-29 | 2021-09-29 | 弹窗管理系统、弹窗控制方法、存储介质、计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113867870A true CN113867870A (zh) | 2021-12-31 |
Family
ID=79000754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111153958.0A Pending CN113867870A (zh) | 2021-09-29 | 2021-09-29 | 弹窗管理系统、弹窗控制方法、存储介质、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113867870A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114675905A (zh) * | 2022-04-07 | 2022-06-28 | 亿咖通(湖北)技术有限公司 | 一种信息显示方法、车机系统和可读存储介质 |
CN114895828A (zh) * | 2022-03-10 | 2022-08-12 | 北京元年科技股份有限公司 | 数据流配置界面上弹框的显示控制方法、装置及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140282225A1 (en) * | 2013-03-15 | 2014-09-18 | Bmc Software, Inc. | Off-screen window controls |
CN106648715A (zh) * | 2015-10-29 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 加载弹窗控件的方法和系统 |
CN109445775A (zh) * | 2018-10-12 | 2019-03-08 | 平安科技(深圳)有限公司 | 一键活动内嵌代码方法、装置及计算机可读存储介质 |
CN110347384A (zh) * | 2019-07-17 | 2019-10-18 | 广东科徕尼智能科技有限公司 | 一种基于Object_C语言分类实现多样式弹窗的方法 |
CN113190776A (zh) * | 2021-05-11 | 2021-07-30 | 上海哔哩哔哩科技有限公司 | 弹窗展示方法与系统 |
CN113254133A (zh) * | 2021-05-25 | 2021-08-13 | 平安普惠企业管理有限公司 | iOS多场景便利弹窗工具、装置、计算机设备及存储介质 |
-
2021
- 2021-09-29 CN CN202111153958.0A patent/CN113867870A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140282225A1 (en) * | 2013-03-15 | 2014-09-18 | Bmc Software, Inc. | Off-screen window controls |
CN106648715A (zh) * | 2015-10-29 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 加载弹窗控件的方法和系统 |
CN109445775A (zh) * | 2018-10-12 | 2019-03-08 | 平安科技(深圳)有限公司 | 一键活动内嵌代码方法、装置及计算机可读存储介质 |
CN110347384A (zh) * | 2019-07-17 | 2019-10-18 | 广东科徕尼智能科技有限公司 | 一种基于Object_C语言分类实现多样式弹窗的方法 |
CN113190776A (zh) * | 2021-05-11 | 2021-07-30 | 上海哔哩哔哩科技有限公司 | 弹窗展示方法与系统 |
CN113254133A (zh) * | 2021-05-25 | 2021-08-13 | 平安普惠企业管理有限公司 | iOS多场景便利弹窗工具、装置、计算机设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114895828A (zh) * | 2022-03-10 | 2022-08-12 | 北京元年科技股份有限公司 | 数据流配置界面上弹框的显示控制方法、装置及设备 |
CN114675905A (zh) * | 2022-04-07 | 2022-06-28 | 亿咖通(湖北)技术有限公司 | 一种信息显示方法、车机系统和可读存储介质 |
CN114675905B (zh) * | 2022-04-07 | 2024-03-08 | 亿咖通(湖北)技术有限公司 | 一种信息显示方法、车机系统和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12067211B2 (en) | Multi-window display interface with historical task bar | |
CN112947840B (zh) | 包括触敏显示器的电子装置及操作该电子装置的方法 | |
CN109076125B (zh) | 一种显示方法及设备 | |
TWI590145B (zh) | 使用者可縮放圖示 | |
CN109089043B (zh) | 拍摄图像预处理方法、装置、存储介质及移动终端 | |
EP2116926A2 (en) | Configurable icon sizing and placement for wireless and other devices | |
KR102121905B1 (ko) | Ui 제어의 배경을 설정하는 방법 및 장치, 및 단말 | |
CN109298909B (zh) | 一种窗口调节的方法、移动终端及计算机可读存储介质 | |
CN113867870A (zh) | 弹窗管理系统、弹窗控制方法、存储介质、计算机设备 | |
EP2874054B1 (en) | Application text adjusting method, device, and terminal | |
US11507244B2 (en) | Window adjustment method, window adjustment device and mobile terminal | |
US20200201976A1 (en) | Quick account login method, mobile terminal, and apparatus with storage function | |
US9992440B2 (en) | Method, apparatus and computer program product for configuration of a display screen | |
US20150242076A1 (en) | Method of editing one or more objects and apparatus for same | |
US20190155462A1 (en) | Method for Viewing Application Program, Graphical User Interface, and Terminal | |
CN109901776A (zh) | 一种调整对象属性的方法及装置 | |
KR20160027699A (ko) | 이미지 처리 방법 및 그 전자 장치 | |
CN106960460B (zh) | 动画处理方法、装置及设备 | |
JP6134869B2 (ja) | Pwmデータ処理方法、pwmデータ処理装置、プログラム及び記録媒体 | |
CN112328350B (zh) | 分屏显示的方法、装置、电子设备和存储介质 | |
CN116501205B (zh) | 被覆盖视图的移动方法、装置、电子设备及可读存储介质 | |
US20150310587A1 (en) | Method for object displaying and electronic device thereof | |
CN116166334A (zh) | 通信设备管理方法和装置 | |
CN117785346A (zh) | 界面显示方法和电子设备 | |
CN115756681A (zh) | 界面显示方法、装置、电子设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |