本发明涉及应用开发,特别地涉及一种应用中的弹窗实现方法、装置、电子设备及存储介质。
背景技术:
1、在用户应用互联网产品的过程中,在诸如任务、内容反馈、信息提示等场景,通常采用弹窗实现互联网产品系统与用户的互动。当用户在页面操作后,互联网产品系统在需要给予用户反馈、提示或引导用户下一步操作时,在屏幕中弹出一个窗口,并在窗口中给出反馈信息、提示信息或引导信息。通常,在系统强制用户操作的场景弹出的窗口称为模态弹窗,模态弹窗的主要类型包括dialog/alerts(警告框、对话框)、action sheet(动作菜单/动作面板/行动列表)、action view(视图菜单)和popover/popup/filter/tips(气泡、弹出菜单、筛选、引导框)等等。在系统不打断用户当前操作行为、仅在页面提示用户一些相应内容的场景的弹窗称为非模态弹窗,非模态弹窗的主要类型包括toast/hud(提示框)、snackbar(底部弹窗)和topbar(顶部弹窗)等等。
2、例如,android系统为开发者提供有dialog类及dialogfragment类用于实现一个弹窗。通常情况下,为了基于android系统提供的dialog类及dialogfragment类实现弹窗功能,通常会生成视图文件和代码文件。开发者在视图文件中编写弹窗的视图(view),视图数据包括文字、图片等,用以实现弹窗的ui界面。代码文件记载了弹窗的主体代码,用于实现弹窗窗口(window)的创建、显示以及通过视图文件创建视图等等的控制逻辑。其中,由于还需要定义弹窗在显示时的位置、宽、高、背景模糊度、显示与消失时的动画等弹窗窗口属性,在传统的弹窗实现方式,通过编程代码来设置这些窗口属性。当弹窗数量较多时,显然这种通过代码设置窗口属性的方式会给开发者带来较多的工作量,使得开发工作繁琐且低效。
3、申请内容
4、针对现有技术中存在的技术问题,本发明提出了一种弹窗实现方法、装置、电子设备及存储介质,用以简化开发者在实现弹窗时的开发工作,提高开发效率。
5、为了解决上述技术问题,根据本发明的一个方面,本发明提供了一种弹窗实现方法,包括以下步骤:
6、创建弹窗对象,所述弹窗对象创建弹窗视图的父容器,并在所述父容器中设置布局参数;
7、所述父容器解析弹窗视图文件以获得弹窗窗口视图数据及弹窗窗口属性数据;
8、所述父容器基于所述弹窗窗口视图数据生成弹窗窗口视图,并将所述弹窗窗口视图设置给所述弹窗对象;所述父容器将所述弹窗窗口属性数据存储到所述布局参数中;
9、所述弹窗对象从所述布局参数中读取所述弹窗窗口属性数据,并将所述弹窗窗口属性数据及弹窗窗口视图设置给弹窗窗口对象;以及
10、通过所述弹窗窗口对象按照所述弹窗窗口属性数据在屏幕上创建并显示所述弹窗窗口视图。
11、可选地,所述弹窗实现方法进一步包括弹窗视图文件的生成步骤:
12、基于指令创建预置格式的文件;
13、基于用户在所述文件中编辑的弹窗窗口视图及配置的弹窗窗口属性生成所述弹窗视图文件。
14、可选地,所述预置格式为xml,所述弹窗窗口的属性配置在xml文件的根布局;
15、对应地,在所述父容器中设置的所述布局参数为xml文件的根布局参数。
16、可选地,在创建弹窗对象时,创建diaglogfragment对象,所述的弹窗对象为diaglogfragment类中的弹窗对象;对应地,在屏幕显示所述弹窗窗口视图之后进一步包括:
17、监视是否满足窗口取消条件;以及
18、响应于满足窗口取消条件,隐藏屏幕上的所述弹窗窗口视图。
19、可选地,所述弹窗实现方法在隐藏所述弹窗窗口视图之后进一步包括:
20、监视是否满足窗口再现条件;
21、响应于满足窗口再现条件,判断当前提供的显示方法中是否添加diaglogfragment对象;
22、响应于当前提供的显示方法中已经添加diaglogfragment对象,显示已隐藏的所述弹窗窗口视图;以及
23、响应于当前提供的显示方法中未添加diaglogfragment对象,添加diaglogfragment对象,并通过弹窗窗口对象按照属性数据在屏幕上创建并显示所述弹窗窗口视图。
24、为了解决上述技术问题,根据本发明的另一个方面,本发明还提供了一种弹窗实现装置,包括:
25、弹窗对象创建模块,经配置以在满足弹窗条件时,创建弹窗弹窗对象,所述弹窗对象创建弹窗视图的父容器,并在所述父容器中设置布局参数;
26、解析模块,经配置所述父容器解析弹窗视图文件以获得弹窗窗口视图数据及所述弹窗窗口属性数据;所述父容器基于所述弹窗窗口视图数据生成弹窗窗口视图并设置给弹窗对象;所述父容器将所述弹窗窗口属性数据存储到所述父容器的所述布局参数中;
27、弹窗设置模块,经配置所述弹窗对象从所述布局参数中读取所述弹窗窗口属性数据,将所述属性数据及弹窗窗口视图设置给弹窗窗口对象;以及
28、显示模块,经配置以通过弹窗窗口对象按照属性数据在屏幕上创建并显示所述弹窗窗口视图。
29、可选地,所述的弹窗实现装置进一步包括配置模块,经配置基于指令创建预置格式的文件,基于用户在所述文件中编辑的弹窗窗口视图及配置的弹窗窗口属性生成所述弹窗视图文件。
30、可选地,弹窗对象创建模块创建diaglogfragment对象,所述的弹窗对象为diaglogfragment类中的弹窗对象,对应地,所述显示模块进一步包括窗口显示单元和窗口消失单元,所述窗口显示单元,经配置以在满足弹窗显示条件时,在显示方法中未添加diaglogfragment对象时添加diaglogfragment对象,或者将隐藏状态的diaglogfragment对象的状态修改为显示状态;对应地,添加的所述diaglogfragment对象通过弹窗窗口对象按照属性数据在屏幕上创建并显示所述弹窗窗口视图,或者,从隐藏状态修改为显示状态的diaglogfragment对象通过弹窗窗口对象显示已隐藏的弹窗窗口视图。所述窗口消失单元经配置以在满足窗口消失条件时将diaglogfragment对象的状态设置为隐藏状态,从而隐藏屏幕上的所述弹窗窗口视图。
31、为了解决上述技术问题,根据本发明的另一个方面,本发明还提供了一种电子设备,所述电子设备包括处理器以及存储有计算机程序指令的存储器;所述电子设备执行所述计算机程序指令时实现前述的弹窗实现方法。
32、为了解决上述技术问题,根据本发明的另一个方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现前述的弹窗实现方法。
33、为了解决上述技术问题,根据本发明的另一个方面,本发明还提供了一种计算机程序产品,其包括计算机程序指令,所述计算机程序指令被处理器执行时实现前述的弹窗实现方法。
34、本发明提供的弹窗实现方法、装置、电子设备及存储介质简化了开发者在实现弹窗时的工作量,提高了开发效率。
技术实现思路