本申请涉及弹窗显示,特别是涉及一种弹窗显示方法、装置及电子设备。
背景技术:
1、在一个app内,通常会有各种各样的弹窗,比如用户协议弹窗,版本更新弹窗,活动介绍弹窗,青少年模式弹窗,广告弹窗等等。当需要依次显示多个弹窗时,容易出现弹窗任务执行混乱的问题。
技术实现思路
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、本申请提供的一种弹窗显示方法、装置及电子设备,针对弹窗创建对应的弹窗数据类,弹窗数据类中包括弹窗的弹窗标识和弹窗内容数据,定义弹窗策略接口,该弹窗策略接口中定义有与该弹窗标识对应的弹窗显示实现策略,调用预先创建的弹窗请求发送方法发送弹窗请求,弹窗请求中包含该弹窗的弹窗标识,调用预先创建的弹窗请求添加方法将该弹窗请求添加至预先创建的弹窗请求队列中,调用预先创建的弹窗请求取出方法从弹窗请求队列中取出弹窗请求后,根据与该弹窗标识对应的弹窗内容数据生成对应的弹窗,并在预先创建的弹窗显示方法中调用对应的弹窗策略接口中与该弹窗标识对应的弹窗显示实现策略实现生成的弹窗的显示,实现了根据弹窗请求自动匹配对应的弹窗策略接口,并根据弹窗策略接口中的弹窗显示实现策略完成对应弹窗的显示,基于弹窗策略接口实现对应弹窗的显示,使得各弹窗任务可以独立执行,执行逻辑简单清楚,不容易混乱,另外,将各弹窗请求添加至弹窗请求队列中,并从该弹窗请求队列中取出弹窗请求以实现对应弹窗的显示,可以保证弹窗显示任务执行的顺序性。
1.一种弹窗显示方法,其特征在于,所述方法包括:
2.如权利要求1所述的弹窗显示方法,其特征在于,所述弹窗数据类中还包括所述弹窗的弹窗类型,所述弹窗请求中包含所述弹窗类型;所述定义弹窗策略接口,包括:
3.如权利要求2所述的弹窗显示方法,其特征在于,所述根据与所述弹窗标识对应的所述弹窗内容数据生成对应的弹窗,包括:
4.如权利要求3所述的弹窗显示方法,其特征在于,所述弹窗显示实现策略包括用于判断是否需要显示所述弹窗的判断策略,以及用于在判断需要显示所述弹窗后,用于显示所述弹窗的显示策略;
5.如权利要求1-4中任一项所述的弹窗显示方法,其特征在于,所述弹窗显示方法运行在主线程上,所述弹窗请求发送方法及所述弹窗请求取出方法运行在所述主线程的子线程上。
6.如权利要求1-4中任一项所述的弹窗显示方法,其特征在于,所述在预先创建的弹窗显示方法中调用对应的所述弹窗策略接口中与所述弹窗标识对应的所述弹窗显示实现策略实现生成的所述弹窗的显示之前,所述方法包括:
7.如权利要求6所述的弹窗显示方法,其特征在于,所述确定当前不存在正在显示的弹窗,包括:
8.如权利要求6所述的弹窗显示方法,其特征在于,所述确定当前的顶部活动组件处于可见状态,包括:
9.一种弹窗显示装置,其特征在于,所述装置包括:
10.一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序,以实现如权利要求1-8中任一项所述的方法。