CN111240678B - 弹出窗口的设置方法及装置、电子设备、存储介质 - Google Patents
弹出窗口的设置方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN111240678B CN111240678B CN202010033211.0A CN202010033211A CN111240678B CN 111240678 B CN111240678 B CN 111240678B CN 202010033211 A CN202010033211 A CN 202010033211A CN 111240678 B CN111240678 B CN 111240678B
- Authority
- CN
- China
- Prior art keywords
- window
- pop
- control
- proxy
- target
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明实施例提供了弹出窗口的设置方法及装置、电子设备、存储介质,方法包括:创建弹出窗口模板;采用弹出窗口模板反射调用窗口管理器,生成窗口管理器对应的代理窗口管理器;响应于向窗口管理器发送的添加控件指令,代理窗口管理器生成与目标控件对应的代理控件;将目标控件添加到代理控件中,生成目标代理控件;目标代理控件为目标控件的父控件;调用窗口管理器将目标代理控件添加至弹出窗口模板以生成弹出窗口;显示弹出窗口。本发明实施例可以实现解决开发人员优先级比***低,无法获取触摸事件的问题,避免因版本差异导致的不稳定性,弹出窗口在进行首次显示时能正常在开发人员预设的位置显示。
Description
技术领域
本发明涉及计算机领域,特别是涉及一种弹出窗口的设置方法及装置、电子设备、存储介质。
背景技术
在安卓(Android)日常开发中,我们往往会使用各种弹窗,而弹出窗口(PopupWindow)则属于其中一种。其自定义轻松,定位简单,但却也存在着***原生的弹出窗口创建复杂,每次创建都需要写许多重复性的模板方法、开发人员优先级比***优先级低,触摸事件传递默认消费处理,无法传递给外部,无法获取触摸事件、***版本差异大导致不稳定性较高、在对弹出窗口进行首次显示的时候无法显示在开发人员预设的位置、无法对背景进行模糊处理等各种缺点,导致开发人员不愿采用弹出窗口进行开发。
发明内容
鉴于上述问题,提出了本发明以便提供克服上述问题或者至少部分地解决上述问题的一种弹出窗口的设置方法及装置、电子设备、存储介质,包括:
为了解决上述问题,本发明实施例公开了一种弹出窗口的设置方法,所述方法包括:
创建弹出窗口模板;
采用所述弹出窗口模板反射调用窗口管理器,生成所述窗口管理器对应的代理窗口管理器;
响应于向所述窗口管理器发送的添加控件指令,所述代理窗口管理器生成与目标控件对应的代理控件;
将所述目标控件添加到代理控件中,生成目标代理控件;所述目标代理控件为所述目标控件的父控件;
调用所述窗口管理器将所述目标代理控件添加至所述弹出窗口模板以生成弹出窗口;
显示所述弹出窗口。
优选地,所述创建弹出窗口模板的步骤,包括:
继承预置的弹出窗口模板参数;
基于所述弹出窗口模板参数创建弹出窗口模板。
优选地,所述基于所述弹出窗口模板参数创建弹出窗口模板的步骤之后,还包括:
接收用户返回的身份标识;
采用布局服务对所述身份标识进行解析,获取目标控件;
对所述目标控件进行测量并保存测量得到的参数。
优选地,所述响应于向所述窗口管理器发送的添加控件指令,所述代理窗口管理器生成与目标控件对应的代理控件的步骤之前,还包括:
将所述窗口管理器保存为所述代理窗口管理器的变量;
检测所述代理窗口管理器的变量是否为空;
若所述变量不为空,则执行所述响应于向所述窗口管理器发送的添加控件指令,所述代理窗口管理器生成与目标控件对应的代理控件的步骤。
优选地,所述方法还包括:
若所述变量为空,则重新创建所述弹出窗口模板与所述窗口管理器之间的反射;
重新创建失败时,输出记录日志。
优选地,所述显示所述弹出窗口的步骤,包括:
判断屏幕中是否存在锚点;
若所述屏幕中存在锚点,则获取锚点的坐标;
根据所述测量得到的参数和锚点的坐标,调用位置参数计算所述弹出窗口在所述屏幕中的坐标;
根据所述坐标显示所述弹出窗口。
优选地,所述方法还包括:
若所述屏幕中不存在锚点,则获取所述屏幕的宽和高;
根据所述测量得到的参数和所述屏幕的宽和高,调用位置参数计算所述弹出窗口在所述屏幕中的坐标;
根据所述坐标显示所述弹出窗口。
优选地,所述根据所述测量得到的参数和锚点的坐标,调用位置参数计算所述弹出窗口在所述屏幕中的坐标的步骤,包括:
根据所述位置参数判断所述弹出窗口与锚点的相对位置;
采用所述相对位置、所述测量得到的参数和锚点的坐标计算所述弹出窗口在所述屏幕中的坐标。
优选地,根据所述测量得到的参数和所述屏幕的宽和高,调用位置参数计算所述弹出窗口在所述屏幕中的坐标的步骤,包括:
根据所述位置参数判断所述弹出窗口在屏幕中的位置;
采用所述位置、所述测量得到的参数和所述屏幕的宽和高计算所述弹出窗口在所述屏幕中的坐标。
优选地,所述目标代理控件包括背景控件,所述背景控件用于对背景进行设置。
本发明实施例还公开了一种弹出窗口的设置装置,所述装置包括:
创建模块,用于创建弹出窗口模板;
反射模块,用于采用所述弹出窗口模板反射调用窗口管理器,生成所述窗口管理器对应的代理窗口管理器;
代理控件生成模块,用于响应于向所述窗口管理器发送的添加控件指令,所述代理窗口管理器生成与目标控件对应的代理控件;
目标代理控件生成模块,用于将所述目标控件添加到代理控件中,生成目标代理控件;所述目标代理控件为所述目标控件的父控件;
弹出窗口生成模块,用于调用所述窗口管理器将所述目标代理控件添加至所述弹出窗口模板以生成弹出窗口;
显示模块,用于显示所述弹出窗口。
本发明实施例还提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,计算机程序被处理器执行时实现如上弹出窗口的设置方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上弹出窗口的设置方法的步骤。
本发明具有以下优点:
在本发明的实施例中,通过创建弹出窗口模板,采用所述弹出窗口模板反射调用窗口管理器,生成所述窗口管理器对应的代理窗口管理器,响应于向所述窗口管理器发送的添加控件指令,所述代理窗口管理器生成与目标控件对应的代理控件,将所述目标控件添加到代理控件中,生成目标代理控件,调用所述窗口管理器将所述目标代理控件添加至所述弹出窗口模板以生成弹出窗口,显示所述弹出窗口,使得开发人员在使用弹出窗口进行开发的过程中,无需自行重头开始创建弹出窗口,避免了复杂重复的构建方法,解决了开发人员优先级比***低,无法获取触摸事件的问题,避免了因版本差异而导致的不稳定性,弹出窗口在进行首次显示时也能正常显示在开发人员预设的位置,还能对背景进行模糊处理。
附图说明
为了更清楚地说明本发明的技术方案,下面将对本发明的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种弹出窗口的设置方法的步骤流程图;
图2是本发明实施例提供的另一种弹出窗口的设置方法的步骤流程图;
图3是现有技术中的一种弹出窗口显示方法的示意图;
图4是现有技术中的另一种弹出窗口显示方法的示意图;
图5是本发明实施例提供的一种弹出窗口坐标计算的展示示意图;
图6是本发明实施例提供的一种弹出窗口的设置装置的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,示出了本发明实施例提供的一种弹出窗口的设置方法的步骤流程图,所述方法具体可以包括如下步骤:
步骤101,创建弹出窗口模板;
安卓开发人员在进行安卓***开发的过程中,经常需要使用弹出窗口(PopupWindow)进行开发,而一个弹出窗口创建的过程中,需要进行复杂的数据设置,为了减轻工作量,开发人员可以直接使用安卓开发***中预设的弹出窗口模板(BasePopup)来创建弹出窗口。弹出窗口模板中对弹出窗口的一些常用参数已经设置完成,开发人员只需在弹出窗口模板的基础上添加自己的控件、动画效果即可生成弹出窗口。
步骤102,采用所述弹出窗口模板反射调用窗口管理器,生成所述窗口管理器对应的代理窗口管理器;
窗口管理器(WindowManager)用于向创建的弹出窗口模板添加控件(ContentView),是通过动态生成的,***无法直接获知窗口管理器是否已经生成。因此为了生成与窗口管理器对应的代理窗口管理器(WindowManager Proxy),本发明实施例中采用了弹出窗口模板对窗口管理器进行反射调用,通过反射是否成功建立来获知窗口管理器是否已经生成,若反射成功建立,则可以生成窗口管理器对应的代理窗口管理器(WindowManagerProxy)。此外,为了方便代码的修改以及使用,还可以为弹出窗口模板创建对应的代理弹出窗口(PopupWindowProxy),采用代理弹出窗口对窗口管理器进行反射调用,本发明对此不加限制。
需要说明的是:代理的主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不能直接引用另一个对象,而代理对象可以在被代理对象和目标对象之间起到中介的作用,代理对象可以继承被代理对象的全部参数。在本发明实施例中,通过生成代理窗口管理器,可以将弹出窗口模板向窗口管理器发送的添加控件指令进行截留,从而对需要添加的控件进行修改。
而反射,即在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为反射,由于窗口管理器是动态生成的,无法事先预知,因此需要使用反射的方式获知其是否生成,只有才生成了窗口管理器后,才能有效创建与之对应的代理窗口管理器。
步骤103,响应于向所述窗口管理器发送的添加控件指令,所述代理窗口管理器生成与目标控件对应的代理控件;
在生成代理窗口管理器后,为了向弹出窗口模板中添加控件,开发人员利用***向窗口管理器发送添加控件的指令addView()方法,由于代理窗口管理器的存在,该添加控件的指令在传达到窗口管理器之前被代理窗口管理器截取,当代理窗口管理器截取到该添加控件的指令后,根据指令中所携带的控件的身份标识即可确定需要添加的目标控件,并生成与该目标控件对应的代理控件(ContentViewProxy)。
步骤104,将所述目标控件添加到代理控件中,生成目标代理控件;所述目标代理控件为所述目标控件的父控件;
在生成代理控件后,将目标控件添加进代理控件中生成目标代理控件,使得代理控件成为目标控件的父控件。由于目标控件已成为了子控件,因此开发人员可对其进行自定义测量和布局,又因为目标代理控件为父控件,因此其优先级高于目标控件,在进行消息传递的时候,将优先由目标代理控件获取,在获取后再利用拦截和监听将消息传递给弹出窗口,从而供开发人员使用。除此之外,目标代理控件中还可以包括背景控件,开发人员可以利用背景控件为弹出窗口添加背景效果,如背景模糊。
步骤105,调用所述窗口管理器将所述目标代理控件添加至所述弹出窗口模板以生成弹出窗口;
在生成代理控件后,***调用窗口管理器,通过添加控件的指令addVi ew()方法,将目标代理控件添加至弹出窗口模板中。
步骤106,显示弹出窗口。
在生成弹出窗口后,可调用显示指令show()方法对弹出窗口的布局进行设置,完成设置后即可在屏幕上显示弹出窗口。
在本发明实施例中,通过创建弹出窗口模板,采用所述弹出窗口模板反射调用窗口管理器,生成所述窗口管理器对应的代理窗口管理器,响应于向所述窗口管理器发送的添加控件指令,所述代理窗口管理器生成与目标控件对应的代理控件,将所述目标控件添加到代理控件中,生成目标代理控件,调用所述窗口管理器将所述目标代理控件添加至所述弹出窗口模板以生成弹出窗口,显示所述弹出窗口,使得开发人员在使用弹出窗口进行开发的过程中,无需自行重头开始创建弹出窗口,避免了复杂重复的构建方法,解决了开发人员优先级比***低,无法获取触摸事件消息的问题,同时由于目标控件成为了代理控件的子控件,其宽高位置都可由开发人员测量布局,即在所有版本上都统一成开发人员的测量方案,避免了因版本差异而导致的不稳定,开发人员还可以自定义目标代理控件,加入背景控件,对背景进行模糊处理。
参照图2,示出了本发明实施例提供的另一种弹出窗口的设置方法的步骤流程图,具体可以包括如下步骤:
步骤201,创建弹出窗口模板;
由于本步骤与步骤101相似,详细描述可参照步骤101,在此不再赘述。
在本发明的一种优选实施例中,步骤201还可以包括如下子步骤:
继承预置的弹出窗口模板参数;
基于所述弹出窗口模板参数创建弹出窗口模板。
在安卓开发***中具有预设的弹出窗口模板,通过继承,获取弹出窗口模板的各项属性和方法,基于获取的各项属性和方法创建一个新的弹出窗口模板用于生成弹出窗口。
步骤202,接收用户返回的身份标识;
步骤203,采用布局服务对所述身份标识进行解析,获取目标控件;
步骤204,对所述目标控件进行测量并保存测量得到的参数;
在创建了弹出窗口模板后,开发人员对准备添加的目标控件进行设置,并向***返回目标控件的身份标识,作为一种示例,身份标识可以为ID,即向***返回目标控件的ID,***调用布局服务(LayoutInflater)对身份标识进行解析,获取目标控件并对目标控件的宽高进行测量,将测量得到的参数进行保存供后续布局使用。
步骤205,采用所述弹出窗口模板反射调用窗口管理器,生成所述窗口管理器对应的代理窗口管理器;
由于本步骤与步骤102类似,相似描述可参照步骤102,在此不再赘述。
步骤206,将所述窗口管理器保存为所述代理窗口管理器的变量;
步骤207,检测所述代理窗口管理器的变量是否为空;
步骤208,若所述变量不为空,则执行所述响应于向所述窗口管理器发送的添加控件指令,所述代理窗口管理器生成与目标控件对应的代理控件的步骤;
为了保证弹出窗口模板与窗口管理器之间的反射已经建立,将窗口管理器包裹进代理窗口管理器中,保存为代理窗口管理器的成员变量,在调用setContentView()方法进行控件布局时,通过对该成员变量进行检测即可判断反射是否建立。若变量不为空,则表示反射已建立,继续执行代理窗口管理器截获添加控件指令,生成与目标控件对应的代理控件的步骤。若变量为空,则表示反射未建立,发起建立反射的流程,若再次建立反射失败,则判断反射无法建立,结束整个流程并输出记录日志供开发人员进行参考。需要注意的是,为了方便代码的修改以及使用,还可以为弹出窗口模板创建对应的代理弹出窗口,建立代理弹出窗口对窗口管理器的反射调用,本发明对此不加限制。
步骤209,响应于向所述窗口管理器发送的添加控件指令,所述代理窗口管理器生成与目标控件对应的代理控件;
步骤210,将所述目标控件添加到代理控件中,生成目标代理控件;所述目标代理控件为所述目标控件的父控件;
步骤211,调用所述窗口管理器将所述目标代理控件添加至所述弹出窗口模板以生成弹出窗口;
由于步骤209至211与步骤103至105类似,相似描述可参照步骤103至105,在此不再赘述。
步骤212,显示所述弹出窗口。
在本发明一种优选实施例中,步骤212还包括如下子步骤:
判断屏幕中是否存在锚点;
若所述屏幕中存在锚点,则获取锚点的坐标;
根据所述测量得到的参数和锚点的坐标,调用位置参数计算所述弹出窗口在所述屏幕中的坐标;
根据所述坐标显示所述弹出窗口。
在对弹出窗口进行显示前,需要对目标控件进行测量以及对弹出窗口进行布局处理。为了降低布局时开发人员对弹出窗口位置控制的难度,本发明实施例调用了位置参数Gravity,通过位置参数和锚点共同控制弹出窗口的位置。
如图3所示,图3中的屏幕并没有指定锚点,此时位置参数作用于整个屏幕,表现为显示在屏幕上的位置,当位置参数为Gravity.Top,即为弹出窗口301显示在屏幕的上方。
又例如图4,为屏幕中指定了锚点的情况,此时位置参数作用于锚点,表现为显示于该锚点的相对位置,当位置参数为Gravity.Left,即为弹出窗口401显示在锚点的右方。
因此在计算弹出窗口在屏幕上的坐标时,先判断屏幕中是否存在锚点,若屏幕中存在锚点,则获取锚点的坐标,根据位置参数判断弹出窗口与锚点的相对位置,然后根据已获取的目标控件的宽高参数、位置参数计算弹出窗口在屏幕中的坐标。以位置参数为Gravity.Left为例,获取了锚点坐标后,判断得出弹出窗口在锚点的右方,利用锚点坐标减去目标控件的宽度,即可得到弹出窗口左上角的坐标,再根据目标控件的宽高即可算出弹出窗口其余3点的坐标,根据计算出来的坐标在相应的位置对弹出窗口进行显示。
在本发明另一种优选实施例中,步骤212还包括如下子步骤:
若所述屏幕中不存在锚点,则获取所述屏幕的宽和高;
根据所述测量得到的参数和所述屏幕的宽和高,调用位置参数计算所述弹出窗口在所述屏幕中的坐标;
根据所述坐标显示所述弹出窗口。
当判断屏幕中不存在锚点时,获取屏幕的宽和高,调用位置参数判断弹出窗口在屏幕中的位置后,利用已获得的目标控件的宽和高、屏幕的宽和高计算弹出窗口在屏幕中的坐标。如图5所示,当位置参数为Gravity.Right时,判断弹出窗口501在屏幕502的右侧,因此利用屏幕的宽度减去目标控件的宽度,即可得到弹出窗口左上角的坐标,再根据目标控件的宽高即可算出弹出窗口其余3点的坐标,根据计算出来的坐标在相应的位置对弹出窗口进行显示。
在本发明实施例中,通过继承弹出窗口模板,生成弹出窗口并调用位置参数结合锚点对弹出窗口进行布局并显示,使得开发人员无需耗费大量时间编写布局的代码,同时提高了布局的精度。
参照图6,示出了本发明一实施例提供的一种弹出窗口的设置方法结构框图,所述装置可以包括如下模块:
创建模块601,用于创建弹出窗口模板;
反射模块602,用于采用所述弹出窗口模板反射调用窗口管理器,生成所述窗口管理器对应的代理窗口管理器;
代理控件生成模块603,用于响应于向所述窗口管理器发送的添加控件指令,所述代理窗口管理器生成与目标控件对应的代理控件;
目标代理控件生成模块604,用于将所述目标控件添加到代理控件中,生成目标代理控件;所述目标代理控件为所述目标控件的父控件;
弹出窗口生成模块605,用于调用所述窗口管理器将所述目标代理控件添加至所述弹出窗口模板以生成弹出窗口;
显示模块606,用于显示所述弹出窗口。
在本发明一实施例中,所述创建模块601包括:
继承子模块,用于继承预置的弹出窗口模板参数;
模板创建子模块,用于基于所述弹出窗口模板参数创建弹出窗口模板。
在本发明一实施例中,所述装置还包括:
身份标识接收模块,用于接收用户返回的身份标识;
解析模块,用于采用布局服务对所述身份标识进行解析,获取目标控件;
测量模块,用于对所述目标控件进行测量并保存测量得到的参数。
在本发明一实施例中,所述装置还包括:
变量模块,用于将所述窗口管理器保存为所述代理窗口管理器的变量;
检测模块,用于检测所述代理窗口管理器的变量是否为空;
调用执行模块,用于若所述变量不为空,则执行所述响应于向所述窗口管理器发送的添加控件指令,所述代理窗口管理器生成与目标控件对应的代理控件的步骤。
在本发明一实施例中,所述装置还包括:
重新创建反射模块,用于若所述变量为空,则重新创建所述弹出窗口模板与所述窗口管理器之间的反射;
记录日志模块,用于重新创建失败时,输出记录日志。
在本发明一实施例中,所述显示模块606还包括:
锚点判断子模块,用于判断屏幕中是否存在锚点;
锚点坐标获取子模块,用于若所述屏幕中存在锚点,则获取锚点的坐标;
第一计算子模块,用于根据所述测量得到的参数和锚点的坐标,调用位置参数计算所述弹出窗口在所述屏幕中的坐标;
屏幕参数获取子模块,用于若所述屏幕中不存在锚点,则获取所述屏幕的宽和高;
第二计算子模块,用于根据所述测量得到的参数和所述屏幕的宽和高,调用位置参数计算所述弹出窗口在所述屏幕中的坐标;
弹出窗口显示子模块,用于根据所述坐标显示所述弹出窗口。
在本发明一实施例中,所述第一计算子模块还包括:
相对位置判断子单元,用于根据所述位置参数判断所述弹出窗口与锚点的相对位置;
第一弹出窗口坐标计算子单元,用于采用所述相对位置、所述测量得到的参数和锚点的坐标计算所述弹出窗口在所述屏幕中的坐标。
在本发明一实施例中,所述第二计算子模块还包括:
弹出窗口位置判断子单元,用于根据所述位置参数判断所述弹出窗口在屏幕中的位置;
第二弹出窗口坐标计算子单元,采用所述位置、所述测量得到的参数和所述屏幕的宽和高计算所述弹出窗口在所述屏幕中的坐标。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明一实施例还提供了电子设备,可以包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上弹出窗口的设置方法的步骤。
本发明一实施例还提供了计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上弹出窗口的设置方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种弹出窗口的设置方法及装置、电子设备、存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (13)
1.一种弹出窗口的设置方法,其特征在于,所述方法包括:
创建弹出窗口模板;
采用所述弹出窗口模板反射调用窗口管理器,生成所述窗口管理器对应的代理窗口管理器;
响应于向所述窗口管理器发送的添加控件指令,所述代理窗口管理器生成与目标控件对应的代理控件;
将所述目标控件添加到代理控件中,生成目标代理控件;所述目标代理控件为所述目标控件的父控件;
调用所述窗口管理器将所述目标代理控件添加至所述弹出窗口模板以生成弹出窗口;
显示所述弹出窗口。
2.根据权利要求1所述的方法,其特征在于,所述创建弹出窗口模板的步骤,包括:
继承预置的弹出窗口模板参数;
基于所述弹出窗口模板参数创建弹出窗口模板。
3.根据权利要求2所述的方法,其特征在于,所述基于所述弹出窗口模板参数创建弹出窗口模板的步骤之后,还包括:
接收用户返回的身份标识;
采用布局服务对所述身份标识进行解析,获取目标控件;
对所述目标控件进行测量并保存测量得到的参数。
4.根据权利要求1所述的方法,其特征在于,所述响应于向所述窗口管理器发送的添加控件指令,所述代理窗口管理器生成与目标控件对应的代理控件的步骤之前,还包括:
将所述窗口管理器保存为所述代理窗口管理器的变量;
检测所述代理窗口管理器的变量是否为空;
若所述变量不为空,则执行所述响应于向所述窗口管理器发送的添加控件指令,所述代理窗口管理器生成与目标控件对应的代理控件的步骤。
5.根据权利要求4所述的方法,其特征在于,还包括:
若所述变量为空,则重新创建所述弹出窗口模板与所述窗口管理器之间的反射;
重新创建失败时,输出记录日志。
6.根据权利要求3所述的方法,其特征在于,所述显示所述弹出窗口的步骤,包括:
判断屏幕中是否存在锚点;
若所述屏幕中存在锚点,则获取锚点的坐标;
根据所述测量得到的参数和锚点的坐标,调用位置参数计算所述弹出窗口在所述屏幕中的坐标;
根据所述坐标显示所述弹出窗口。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若所述屏幕中不存在锚点,则获取所述屏幕的宽和高;
根据所述测量得到的参数和所述屏幕的宽和高,调用位置参数计算所述弹出窗口在所述屏幕中的坐标;
根据所述坐标显示所述弹出窗口。
8.根据权利要求6所述的方法,其特征在于,所述根据所述测量得到的参数和锚点的坐标,调用位置参数计算所述弹出窗口在所述屏幕中的坐标的步骤,包括:
根据所述位置参数判断所述弹出窗口与锚点的相对位置;
采用所述相对位置、所述测量得到的参数和锚点的坐标计算所述弹出窗口在所述屏幕中的坐标。
9.根据权利要求7所述的方法,其特征在于,根据所述测量得到的参数和所述屏幕的宽和高,调用位置参数计算所述弹出窗口在所述屏幕中的坐标的步骤,包括:
根据所述位置参数判断所述弹出窗口在屏幕中的位置;
采用所述位置、所述测量得到的参数和所述屏幕的宽和高计算所述弹出窗口在所述屏幕中的坐标。
10.根据权利要求1所述的方法,其特征在于,所述目标代理控件包括背景控件,所述背景控件用于对背景进行设置。
11.一种弹出窗口的设置装置,其特征在于,所述装置包括:
创建模块,用于创建弹出窗口模板;
反射模块,用于采用所述弹出窗口模板反射调用窗口管理器,生成所述窗口管理器对应的代理窗口管理器;
代理控件生成模块,用于响应于向所述窗口管理器发送的添加控件指令,所述代理窗口管理器生成与目标控件对应的代理控件;
目标代理控件生成模块,用于将所述目标控件添加到代理控件中,生成目标代理控件;所述目标代理控件为所述目标控件的父控件;
弹出窗口生成模块,用于调用所述窗口管理器将所述目标代理控件添加至所述弹出窗口模板以生成弹出窗口;
显示模块,用于显示所述弹出窗口。
12.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至10中任一项所述的弹出窗口的设置方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至10中任一项所述的弹出窗口的设置方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010033211.0A CN111240678B (zh) | 2020-01-13 | 2020-01-13 | 弹出窗口的设置方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010033211.0A CN111240678B (zh) | 2020-01-13 | 2020-01-13 | 弹出窗口的设置方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111240678A CN111240678A (zh) | 2020-06-05 |
CN111240678B true CN111240678B (zh) | 2023-05-05 |
Family
ID=70876045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010033211.0A Active CN111240678B (zh) | 2020-01-13 | 2020-01-13 | 弹出窗口的设置方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111240678B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113126855B (zh) * | 2021-05-14 | 2023-05-12 | 广州虎牙科技有限公司 | 客户端交互方法、装置、电子设备和存储介质 |
CN114020267A (zh) * | 2021-11-04 | 2022-02-08 | 四川启睿克科技有限公司 | 一种rpa窗口控件检测的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107807821A (zh) * | 2017-10-26 | 2018-03-16 | 福建中金在线信息科技有限公司 | 动画弹窗的实现方法和终端 |
CN109992264A (zh) * | 2017-12-29 | 2019-07-09 | 浙江宇视科技有限公司 | 窗口管理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7296230B2 (en) * | 2002-11-29 | 2007-11-13 | Nippon Telegraph And Telephone Corporation | Linked contents browsing support device, linked contents continuous browsing support device, and method and program therefor, and recording medium therewith |
-
2020
- 2020-01-13 CN CN202010033211.0A patent/CN111240678B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107807821A (zh) * | 2017-10-26 | 2018-03-16 | 福建中金在线信息科技有限公司 | 动画弹窗的实现方法和终端 |
CN109992264A (zh) * | 2017-12-29 | 2019-07-09 | 浙江宇视科技有限公司 | 窗口管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111240678A (zh) | 2020-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107992427B (zh) | 创建业务测试场景的方法、装置、设备及其存储介质 | |
US9021438B2 (en) | Automatic framework for parallel testing on multiple testing environments | |
US10462029B2 (en) | Device cloud monitoring and stability | |
US20050289088A1 (en) | Processing logic modeling and execution | |
US20090228838A1 (en) | Content design tool | |
US20170147480A1 (en) | Test script generation | |
US20130339931A1 (en) | Application trace replay and simulation systems and methods | |
US20150236799A1 (en) | Method and system for quick testing and detecting mobile devices | |
CN111240678B (zh) | 弹出窗口的设置方法及装置、电子设备、存储介质 | |
US20190073249A1 (en) | Message oriented middleware with integrated rules engine | |
CN111667199A (zh) | 工作流构建方法、装置、计算机设备和存储介质 | |
CN112494940A (zh) | 用户界面的制作方法、装置、存储介质及计算机设备 | |
CN113986426A (zh) | 图像检测方法、装置、可读介质及电子设备 | |
US10503572B2 (en) | Hybrid remote controller | |
US10678561B2 (en) | Virtualizing extension code in an application | |
CN115509531A (zh) | 基于前端技术的微前端实现方法、装置、终端及存储介质 | |
CN116107885A (zh) | 一种接口测试方法、装置、设备、存储介质 | |
CN112463626B (zh) | 内存泄漏定位方法、装置、计算机设备及存储介质 | |
CN111858037B (zh) | 一种物理机的服务编排方法、装置、设备及存储介质 | |
CN113986679A (zh) | 基于配置信息热加载的性能分析方法及装置 | |
CN111459547A (zh) | 一种函数调用链路的展示方法和装置 | |
CN112749282A (zh) | 知识图谱的展示方法、装置、设备及存储介质 | |
CN115292418B (zh) | 跨***业务流程自动化处理方法及*** | |
CN113128187B (zh) | 一种表单生成方法、装置及*** | |
CN112799954B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |