一种处理弹窗的方法、装置及电子设备转让专利

申请号 : CN201610363754.2

文献号 : CN105975380B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郭滔许昆王媚

申请人 : 珠海豹趣科技有限公司

摘要 :

本发明的实施例公开一种处理弹窗的方法、装置及电子设备,涉及信息推送技术,能够提高用户的工作效率。所述处理弹窗的方法包括:监测电子设备的当前运行状态;在所述当前运行状态与预先设置的工作状态库中的任一工作状态相匹配的条件下,监测调用创建弹窗的应用程序编程接口的行为;如果监测到调用应用程序编程接口的行为,拒绝所述应用程序编程接口创建弹窗。本发明适用于利用弹窗推送增值业务信息。

权利要求 :

1.一种处理弹窗的方法,其特征在于,包括:

监测电子设备的当前运行状态;

在所述当前运行状态与预先设置的工作状态库中的任一工作状态相匹配的条件下,监测调用创建弹窗的应用程序编程接口的行为;

如果监测到调用应用程序编程接口的行为,则获取待创建的弹窗的窗口信息;

如果获取的所述窗口信息与预先设置的弹窗白名单库中的所有弹窗白名单都不匹配,拒绝所述应用程序编程接口创建弹窗。

2.根据权利要求1所述的处理弹窗的方法,其特征在于,在所述如果监测到调用应用程序编程接口的行为之后,拒绝所述应用程序编程接口创建弹窗之前,所述方法还包括:获取待创建的弹窗的窗口信息,依据所述窗口信息判断应用程序编程接口待创建的弹窗是否为置顶弹窗,如果是,执行所述拒绝所述应用程序编程接口创建弹窗的步骤;如果不是,如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,允许所述应用程序编程接口创建弹窗。

3.根据权利要求2所述的处理弹窗的方法,其特征在于,在所述如果是之后,执行所述拒绝所述应用程序编程接口创建弹窗的步骤之前,所述方法还包括:判断获取的所述窗口信息是否与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,且所述窗口信息中是否携带有实时增值业务信息,如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,且所述窗口信息中携带有实时增值业务信息,允许所述应用程序编程接口创建弹窗;否则,执行所述拒绝所述应用程序编程接口创建弹窗的步骤。

4.根据权利要求3所述的处理弹窗的方法,其特征在于,所述如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配包括:提取所述窗口信息中包含的窗口名、窗口类名以及应用程序名;

查询预先设置的弹窗白名单库,判断是否存在与提取的应用程序名相同的应用程序白名单;

如果存在与提取的应用程序名相同的应用程序白名单,判断所述应用程序白名单下是否存在与提取的窗口类名相同的窗口类名白名单;

如果存在与提取的窗口类名相同的窗口类名白名单,判断所述窗口类名白名单下是否存在与提取的窗口名相同的窗口名白名单,如果存在,确认获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配。

5.根据权利要求1至4任一项所述的处理弹窗的方法,其特征在于,在拒绝所述应用程序编程接口创建弹窗之后,所述方法还包括:获取待创建的弹窗的窗口信息;

如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,缓存所述待创建的弹窗的窗口信息;

监测电子设备的当前运行状态;

如果所述当前运行状态与预先设置的工作状态库中的所有工作状态都不匹配,依据缓存的所述窗口信息创建弹窗。

6.根据权利要求1至4任一项所述的处理弹窗的方法,其特征在于,所述方法还包括:在所述当前运行状态与预先设置的工作状态库中的任一工作状态都不匹配的条件下,监测调用创建弹窗的应用程序编程接口的行为;

如果监测到调用应用程序编程接口的行为,获取待创建的弹窗的窗口信息;

如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,依据所述窗口信息创建弹窗。

7.根据权利要求1至4任一项所述的处理弹窗的方法,其特征在于,所述工作状态库包括:电子设备处于外接显示器状态、电子设备处于全屏模式状态、非全屏模式状态下有预先设置的应用程序运行状态。

8.一种处理弹窗的装置,其特征在于,包括:运行状态监测模块、工作状态匹配模块以及调用行为监测模块,其中,运行状态监测模块,用于监测电子设备的当前运行状态;

工作状态匹配模块,用于在所述当前运行状态与预先设置的工作状态库中的任一工作状态相匹配的条件下,监测调用创建弹窗的应用程序编程接口的行为;

调用行为监测模块,如果监测到调用应用程序编程接口的行为,则获取待创建的弹窗的窗口信息;

如果获取的所述窗口信息与预先设置的弹窗白名单库中的所有弹窗白名单都不匹配,拒绝所述应用程序编程接口创建弹窗。

9.根据权利要求8所述的处理弹窗的装置,其特征在于,所述调用行为监测模块包括:调用行为监测单元、置顶弹窗判断单元、调用行为拒绝单元以及调用行为允许单元,其中,调用行为监测单元,用于在监测到调用应用程序编程接口的行为后,通知置顶弹窗判断单元;

置顶弹窗判断单元,用于获取待创建的弹窗的窗口信息,依据所述窗口信息判断应用程序编程接口待创建的弹窗是否为置顶弹窗,如果是,通知调用行为拒绝单元;如果不是,通知调用行为允许单元;

调用行为拒绝单元,用于拒绝所述应用程序编程接口创建弹窗;

调用行为允许单元,如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,允许所述应用程序编程接口创建弹窗。

10.根据权利要求9所述的处理弹窗的装置,其特征在于,所述调用行为监测模块还包括:弹窗匹配单元,用于拦截输出至调用行为拒绝单元的通知,判断获取的所述窗口信息是否与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,且所述窗口信息中是否携带有实时增值业务信息,如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,且所述窗口信息中携带有实时增值业务信息,通知调用行为允许单元;否则,通知调用行为拒绝单元。

11.根据权利要求10所述的处理弹窗的装置,其特征在于,所述如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配包括:提取所述窗口信息中包含的窗口名、窗口类名以及应用程序名;

查询预先设置的弹窗白名单库,判断是否存在与提取的应用程序名相同的应用程序白名单;

如果存在与提取的应用程序名相同的应用程序白名单,判断所述应用程序白名单下是否存在与提取的窗口类名相同的窗口类名白名单;

如果存在与提取的窗口类名相同的窗口类名白名单,判断所述窗口类名白名单下是否存在与提取的窗口名相同的窗口名白名单,如果存在,确认获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配。

12.根据权利要求8至11任一项所述的处理弹窗的装置,其特征在于,所述装置还包括:弹窗缓存模块,用于获取待创建的弹窗的窗口信息;如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,缓存所述待创建的弹窗的窗口信息;监测电子设备的当前运行状态;如果所述当前运行状态与预先设置的工作状态库中的所有工作状态都不匹配,依据缓存的所述窗口信息创建弹窗。

13.根据权利要求8至11任一项所述的处理弹窗的装置,其特征在于,所述装置还包括:工作状态不匹配处理模块,用于在所述当前运行状态与预先设置的工作状态库中的任一工作状态都不匹配的条件下,监测调用创建弹窗的应用程序编程接口的行为;如果监测到调用应用程序编程接口的行为,获取待创建的弹窗的窗口信息;如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,依据所述窗口信息创建弹窗。

14.根据权利要求8至11任一项所述的处理弹窗的装置,其特征在于,所述工作状态库包括:电子设备处于外接显示器状态、电子设备处于全屏模式状态、非全屏模式状态下有预先设置的应用程序运行状态。

15.一种电子设备,其特征在于,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述权利要求1-7任一所述的处理弹窗的方法。

说明书 :

一种处理弹窗的方法、装置及电子设备

技术领域

[0001] 本发明涉及信息推送技术,尤其涉及一种处理弹窗的方法、装置及电子设备。

背景技术

[0002] 随着计算机通信以及互联网技术的不断发展,电子设备,例如,智能移动电话、个人数字助理、掌上电脑、笔记本电脑等应用越来越广泛。电子设备能够容纳的互联网信息呈指数级增长,用于承载互联网信息的应用程序(APP,Application)也越来越多,极大地满足了不同用户的个性化需求。但电子设备在带给用户极大便利的同时,也给用户带来了不少困扰,例如,一些应用程序运营商发现了基于电子设备的商机,即利用弹窗的方式向用户推送增值业务信息。其中,弹窗是电子设备中常见的一种视窗(窗口)表现形式,通过以透明或半透明的方式悬浮于浏览器显示界面上,向用户提供应用程序的一些以文字和图片相结合的扩展增值业务功能。例如,通过弹窗方式,向用户推送新闻资讯、应用程序推广资讯、天气资讯、游戏上线资讯、旅游资讯以及特价商品资讯等,使得用户可以根据自身的个性化需求,通过浏览弹窗中相关资讯内容或点击弹窗中的相关链接信息,访问对应的网页,从而方便、快捷地获取应用程序运营商推送的扩展增值业务。
[0003] 但现有利用弹窗推送增值业务信息的方法,由于大量的应用程序运营商设置有弹窗,向用户频繁弹出各种类型的弹窗,极大地影响了用户的正常工作效率。例如,在用户执行Office工作时,弹出的弹窗会使得用户输入的字符中断,并使得一些输入的字符消失,需要重新进行输入;再例如,在用户展示PPT、玩游戏的过程中,弹出的弹窗同样会中断用户当前的操作,给用户带来极大困扰,降低了用户的工作效率。
[0004] 目前,为了减少弹窗对用户的干扰,现有处理弹窗的方法是设置弹窗白名单库,利用弹窗白名单库对待加载的弹窗进行监控,如果监控过程中监控到应用程序创建弹窗,将该应用程序创建弹窗的窗口信息提交给预先设置的弹窗拦截引擎,弹窗拦截引擎在接收到窗口信息后,与弹窗白名单库进行匹配,如果与弹窗白名单库不相匹配,阻止弹窗的创建。
[0005] 但该处理弹窗的方法,即使是推送与弹窗白名单库相匹配的弹窗,也没有解决上述的影响用户正常工作效率的技术问题。例如,在用户执行Office工作、展示PPT、玩游戏的过程中,弹出的弹窗会中断用户当前的操作,使得用户的工作效率低;进一步地,拦截(拒绝)未与弹窗白名单库匹配的弹窗,使得一些用户未设置在弹窗白名单库中但用户有需求浏览的弹窗,例如,新闻类弹窗、邮件提醒弹窗,将无法推送给用户,使用户漏失重要信息,不仅降低了增值业务信息的推送成功率,影响了用户的增值业务体验,也不利于应用程序运营商的增值业务推广。

发明内容

[0006] 有鉴于此,本发明实施例提供一种处理弹窗的方法、装置及电子设备,能够提高用户的工作效率,以解决现有的处理弹窗的方法中,弹出的弹窗会中断用户当前的操作,使得用户的工作效率低的问题。
[0007] 第一方面,本发明实施例提供一种处理弹窗的方法,包括:
[0008] 监测电子设备的当前运行状态;
[0009] 在所述当前运行状态与预先设置的工作状态库中的任一工作状态相匹配的条件下,监测调用创建弹窗的应用程序编程接口的行为;
[0010] 如果监测到调用应用程序编程接口的行为,拒绝所述应用程序编程接口创建弹窗。
[0011] 结合第一方面,在第一方面的第一种实施方式中,在所述如果监测到调用应用程序编程接口的行为之后,拒绝所述应用程序编程接口创建弹窗之前,所述该方法还包括:
[0012] 获取待创建的弹窗的窗口信息,依据所述窗口信息判断应用程序编程接口待创建的弹窗是否为置顶弹窗,如果是,执行所述拒绝所述应用程序编程接口创建弹窗的步骤;如果不是,如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,允许所述应用程序编程接口创建弹窗。
[0013] 结合第一方面的第一种实施方式,在第一方面的第二种实施方式中,在所述如果是之后,执行所述拒绝所述应用程序编程接口创建弹窗的步骤之前,所述该方法还包括:
[0014] 判断获取的所述窗口信息是否与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,且所述窗口信息中是否携带有实时增值业务信息,如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,且所述窗口信息中携带有实时增值业务信息,允许所述应用程序编程接口创建弹窗;否则,执行所述拒绝所述应用程序编程接口创建弹窗的步骤。
[0015] 结合第一方面的第二种实施方式,在第一方面的第三种实施方式中,所述如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配包括:
[0016] 提取所述窗口信息中包含的窗口名、窗口类名以及应用程序名;
[0017] 查询预先设置的弹窗白名单库,判断是否存在与提取的应用程序名相同的应用程序白名单;
[0018] 如果存在与提取的应用程序名相同的应用程序白名单,判断所述应用程序白名单下是否存在与提取的窗口类名相同的窗口类名白名单;
[0019] 如果存在与提取的窗口类名相同的窗口类名白名单,判断所述窗口类名白名单下是否存在与提取的窗口名相同的窗口名白名单,如果存在,确认获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配。
[0020] 结合第一方面、第一方面的第一种至第三种的任一种实施方式,在第一方面的第四种实施方式中,在拒绝所述应用程序编程接口创建弹窗之后,所述方法还包括:
[0021] 获取待创建的弹窗的窗口信息;
[0022] 如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,缓存所述待创建的弹窗的窗口信息;
[0023] 监测电子设备的当前运行状态;
[0024] 如果所述当前运行状态与预先设置的工作状态库中的所有工作状态都不匹配,依据缓存的所述窗口信息创建弹窗。
[0025] 结合第一方面、第一方面的第一种至第三种的任一种实施方式,在第一方面的第五种实施方式中,所述方法还包括:
[0026] 在所述当前运行状态与预先设置的工作状态库中的任一工作状态都不匹配的条件下,监测调用创建弹窗的应用程序编程接口的行为;
[0027] 如果监测到调用应用程序编程接口的行为,获取待创建的弹窗的窗口信息;
[0028] 如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,依据所述窗口信息创建弹窗。
[0029] 结合第一方面的第五种实施方式,在第一方面的第六种实施方式中,在所述如果监测到调用应用程序编程接口的行为,获取待创建的弹窗的窗口信息之后,所述方法还包括:
[0030] 如果获取的所述窗口信息与预先设置的弹窗白名单库中的所有弹窗白名单都不匹配,拒绝所述应用程序编程接口创建弹窗。
[0031] 结合第一方面、第一方面的第一种至第三种的任一种实施方式,在第一方面的第七种实施方式中,所述工作状态库包括:电子设备处于外接显示器状态、电子设备处于全屏模式状态、非全屏模式状态下有预先设置的应用程序运行状态。
[0032] 第二方面,本发明实施例提供一种处理弹窗的装置,包括:运行状态监测模块、工作状态匹配模块以及调用行为监测模块,其中,
[0033] 运行状态监测模块,用于监测电子设备的当前运行状态;
[0034] 工作状态匹配模块,用于在所述当前运行状态与预先设置的工作状态库中的任一工作状态相匹配的条件下,监测调用创建弹窗的应用程序编程接口的行为;
[0035] 调用行为监测模块,如果监测到调用应用程序编程接口的行为,拒绝所述应用程序编程接口创建弹窗。
[0036] 结合第二方面,在第二方面的第一种实施方式中,所述调用行为监测模块包括:调用行为监测单元、置顶弹窗判断单元、调用行为拒绝单元以及调用行为允许单元,其中,[0037] 调用行为监测单元,用于在监测到调用应用程序编程接口的行为后,通知置顶弹窗判断单元;
[0038] 置顶弹窗判断单元,用于获取待创建的弹窗的窗口信息,依据所述窗口信息判断应用程序编程接口待创建的弹窗是否为置顶弹窗,如果是,通知调用行为拒绝单元;如果不是,通知调用行为允许单元;
[0039] 调用行为拒绝单元,用于拒绝所述应用程序编程接口创建弹窗;
[0040] 调用行为允许单元,如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,允许所述应用程序编程接口创建弹窗。
[0041] 结合第二方面的第一种实施方式,在第二方面的第二种实施方式中,所述调用行为监测模块还包括:
[0042] 弹窗匹配单元,用于拦截输出至调用行为拒绝单元的通知,判断获取的所述窗口信息是否与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,且所述窗口信息中是否携带有实时增值业务信息,如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,且所述窗口信息中携带有实时增值业务信息,通知调用行为允许单元;否则,通知调用行为拒绝单元。
[0043] 结合第二方面的第二种实施方式,在第二方面的第三种实施方式中,所述如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配包括:
[0044] 提取所述窗口信息中包含的窗口名、窗口类名以及应用程序名;
[0045] 查询预先设置的弹窗白名单库,判断是否存在与提取的应用程序名相同的应用程序白名单;
[0046] 如果存在与提取的应用程序名相同的应用程序白名单,判断所述应用程序白名单下是否存在与提取的窗口类名相同的窗口类名白名单;
[0047] 如果存在与提取的窗口类名相同的窗口类名白名单,判断所述窗口类名白名单下是否存在与提取的窗口名相同的窗口名白名单,如果存在,确认获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配。
[0048] 结合第二方面、第二方面的第一种至第三种中任一种实施方式,在第二方面的第四种实施方式中,所述装置还包括:
[0049] 弹窗缓存模块,用于获取待创建的弹窗的窗口信息;如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,缓存所述待创建的弹窗的窗口信息;监测电子设备的当前运行状态;如果所述当前运行状态与预先设置的工作状态库中的所有工作状态都不匹配,依据缓存的所述窗口信息创建弹窗。
[0050] 结合第二方面、第二方面的第一种至第三种中任一种实施方式,在第二方面的第五种实施方式中,所述装置还包括:
[0051] 工作状态不匹配处理模块,用于在所述当前运行状态与预先设置的工作状态库中的任一工作状态都不匹配的条件下,监测调用创建弹窗的应用程序编程接口的行为;如果监测到调用应用程序编程接口的行为,获取待创建的弹窗的窗口信息;如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,依据所述窗口信息创建弹窗。
[0052] 结合第二方面的第五种实施方式,在第二方面的第六种实施方式中,所述工作状态不匹配处理模块还用于:如果获取的所述窗口信息与预先设置的弹窗白名单库中的所有弹窗白名单都不匹配,拒绝所述应用程序编程接口创建弹窗。
[0053] 结合第二方面、第二方面的第一种至第三种中任一种实施方式,在第二方面的第七种实施方式中,所述工作状态库包括:电子设备处于外接显示器状态、电子设备处于全屏模式状态、非全屏模式状态下有预先设置的应用程序运行状态。
[0054] 第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一所述的处理弹窗的方法。
[0055] 本发明实施例提供的一种处理弹窗的方法、装置及电子设备,通过监测电子设备的当前运行状态;在所述当前运行状态与预先设置的工作状态库中的任一工作状态相匹配的条件下,监测调用创建弹窗的应用程序编程接口的行为;如果监测到调用应用程序编程接口的行为,拒绝所述应用程序编程接口创建弹窗,能够提高用户的工作效率,以解决现有的处理弹窗的方法中,弹出的弹窗会中断用户当前的操作,使得用户的工作效率低的问题。

附图说明

[0056] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0057] 图1为本发明的实施例一处理弹窗的方法流程示意图;
[0058] 图2为本发明的实施例二处理弹窗的方法流程示意图;
[0059] 图3为本发明的实施例三处理弹窗的装置结构示意图;
[0060] 图4为本发明电子设备一个实施例的结构示意图。

具体实施方式

[0061] 下面结合附图对本发明实施例进行详细描述。
[0062] 应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0063] 图1为本发明的实施例一处理弹窗的方法流程示意图,如图1所示,本实施例的方法可以包括:
[0064] 步骤101,监测电子设备的当前运行状态;
[0065] 本实施例中,本实施例中,考虑到当用户处于工作状态时,如果弹出弹窗,将会中断用户当前的工作状态,给用户造成困扰,极大地影响了用户的正常工作效率。因而,考虑对电子设备的当前运行状态进行监测,如果当前运行状态为用户处于工作状态,则阻止弹出弹窗,以避免对用户当前工作状态的干扰。
[0066] 步骤102,在所述当前运行状态与预先设置的工作状态库中的任一工作状态相匹配的条件下,监测调用创建弹窗的应用程序编程接口的行为;
[0067] 本实施例中,通过预先设置工作状态库,当电子设备运行在工作状态库中的任一工作状态时,将拒绝弹出弹窗,以避免影响用户的正常工作。
[0068] 本实施例中,预先设置的工作状态库可依据用户是否处于工作状态确定。
[0069] 作为一可选实施例,如果电子设备的当前运行状态为下列状态之一或其任意组合:
[0070] 1)电子设备有外接显示器的状态,外接显示器包括但不限于投影仪:在该外接有显示器的状态下,用户可能在进行PPT展示,或者视频外放,为了避免对用户的干扰,应拦截对用户进行弹窗的展示。
[0071] 2)电子设备处于全屏模式状态:在全屏模式状态下,用户可能正在进行游戏或观看视频,也不应进行弹窗展示。
[0072] 3)有Office、CAD等工作应用程序运行的状态:在该状态下,用户可能正在进行工作,或者给客户展示产品效果,不应进行弹窗展示。
[0073] 4)非全屏模式状态下,有游戏应用程序、视频应用程序、财经应用程序等应用程序运行的状态,不应进行弹窗展示。
[0074] 因而,本实施例中,工作状态库包括但不限于:电子设备处于外接显示器状态、电子设备处于全屏模式状态、非全屏模式状态下有预先设置的应用程序运行状态等。举例来说,如果电子设备的当前运行状态处于外接显示器状态、和/或,全屏状态、和/或,有预先设置的应用程序运行,则拒绝应用程序编程接口创建弹窗。
[0075] 当然,实际应用中,工作状态库还可以根据实际需要进行扩展或更新,例如,对于电子设备处于全屏模式状态,还可以检测是否是有预先设置的应用程序运行,本实施例对此不作限定。
[0076] 本实施例中,作为一可选实施例,利用监控进程,例如,利用monitor.exe进程监控当前运行状态以及调用应用程序编程接口(API,Application Programming Interface)的行为。其中,监控进程包含两个线程,一线程用于对调用创建弹窗的应用程序编程接口的行为进行监控,另一线程用于对电子设备的当前运行状态进行监控。
[0077] 本实施例中,通过启动monitor.exe进程,该monitor.exe进程启动两个线程,分别为A线程以及B线程,A线程对电子设备的当前运行状态进行监控,B线程对弹窗的创建进行监控。在初始阶段,A线程处于运行状态,B线程处于睡眠状态,当A线程监测到电子设备的当前运行状态处于工作状态库中的任一工作状态(与预先设置的工作状态库中的任一工作状态相匹配)时,唤醒B线程,使得B线程初始化后处于运行状态,监控是否有第三方应用程序调用创建弹窗的API行为。
[0078] 步骤103,如果监测到调用应用程序编程接口的行为,拒绝所述应用程序编程接口创建弹窗。
[0079] 本实施例中,如果在用户处于工作状态的条件下,有第三方应用程序调用创建弹窗的应用程序编程接口的行为,为了不影响用户的正常工作状态,拒绝调用的应用程序编程接口创建弹窗的行为。
[0080] 本实施例中,作为一可选实施例,在所述如果监测到调用应用程序编程接口的行为之后,拒绝所述应用程序编程接口创建弹窗之前,该方法还包括:
[0081] 获取待创建的弹窗的窗口信息,依据所述窗口信息判断应用程序编程接口待创建的弹窗是否为置顶弹窗,如果是,执行所述拒绝所述应用程序编程接口创建弹窗的步骤;如果不是,如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,允许所述应用程序编程接口创建弹窗。
[0082] 本实施例中,由于只有置顶弹窗会对用户产生干扰,通过对窗口信息进行判断,如果创建了一个置顶的弹窗,则将窗口信息提交给窗口拦截引擎以作进一步判断,即窗口拦截引擎判断获取的所述窗口信息是否与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,如果不相匹配,执行所述拒绝所述应用程序编程接口创建弹窗的步骤;如果相匹配,允许所述应用程序编程接口创建弹窗。
[0083] 本实施例中,作为一可选实施例,在所述如果是之后,执行所述拒绝所述应用程序编程接口创建弹窗的步骤之前,该方法还包括:
[0084] 判断获取的所述窗口信息是否与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,且所述窗口信息中是否携带有实时增值业务信息,如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,且所述窗口信息中携带有实时增值业务信息,允许所述应用程序编程接口创建弹窗;否则,执行所述拒绝所述应用程序编程接口创建弹窗的步骤。
[0085] 本实施例中,实时增值业务信息是指具有极短生效时间的增值业务信息,因而,对于该类信息的推送,即时向用户展示。例如,当有突发新闻事件时,即时弹出弹窗,引导用户点击并在弹窗新闻模块查看详情。
[0086] 本实施例中,作为一可选实施例,所述如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配包括:
[0087] A11,提取所述窗口信息中包含的窗口名、窗口类名以及应用程序名;
[0088] A12,查询预先设置的弹窗白名单库,判断是否存在与提取的应用程序名相同的应用程序白名单;
[0089] A13,如果存在与提取的应用程序名相同的应用程序白名单,判断所述应用程序白名单下是否存在与提取的窗口类名相同的窗口类名白名单;
[0090] A14,如果存在与提取的窗口类名相同的窗口类名白名单,判断所述窗口类名白名单下是否存在与提取的窗口名相同的窗口名白名单,如果存在,确认获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配。
[0091] 本实施例中,窗口拦截引擎在获取窗口信息后,将窗口信息中包含的窗口名、窗口类名以及应用程序名与本地存储的弹窗白名单库进行匹配,如果能够找到同一应用程序名下的同一窗口类名下的同一窗口名,则允许应用程序编程接口创建该窗口名对应的弹窗;否则拦截应用程序编程接口创建该窗口名对应的弹窗。
[0092] 作为一可选实施例,在拒绝所述应用程序编程接口创建弹窗之后,该方法还包括:
[0093] B11,获取待创建的弹窗的窗口信息;
[0094] B12,如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,缓存所述待创建的弹窗的窗口信息;
[0095] B13,监测电子设备的当前运行状态;
[0096] B14,如果所述当前运行状态与预先设置的工作状态库中的所有工作状态都不匹配,依据缓存的所述窗口信息创建弹窗。
[0097] 本实施例中,作为一可选实施例,在用户处于工作状态的条件下,如果有第三方应用程序调用创建弹窗的应用程序编程接口的行为,可以缓存待创建的弹窗的窗口信息,以在用户处于非工作状态的条件下时,依据缓存的窗口信息创建弹窗,从而便于用户浏览,避免漏失重要的增值业务信息。
[0098] 本实施例中,作为另一可选实施例,该方法还包括:
[0099] C11,在所述当前运行状态与预先设置的工作状态库中的任一工作状态都不匹配的条件下,监测调用创建弹窗的应用程序编程接口的行为;
[0100] C12,如果监测到调用应用程序编程接口的行为,获取待创建的弹窗的窗口信息;
[0101] C13,如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,依据所述窗口信息创建弹窗。
[0102] 本实施例中,如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,允许第三方应用程序调用应用程序编程接口创建弹窗。
[0103] 本实施例中,当电子设备处于非工作状态时,监控进程启动B线程对弹窗的创建进行监控,将待创建的弹窗的窗口信息提交给弹窗拦截引擎,然后由弹窗拦截引擎将窗口信息在弹窗白名单库中进行匹配,如果匹配,允许弹窗的创建。
[0104] 本实施例中,作为一可选实施例,在所述如果监测到调用应用程序编程接口的行为,获取待创建的弹窗的窗口信息之后,该方法还包括:
[0105] 如果获取的所述窗口信息与预先设置的弹窗白名单库中的所有弹窗白名单都不匹配,拒绝所述应用程序编程接口创建弹窗。
[0106] 本发明实施例一处理弹窗的方法,通过监测电子设备的当前运行状态;在所述当前运行状态与预先设置的工作状态库中的任一工作状态相匹配的条件下,监测调用创建弹窗的应用程序编程接口的行为;如果监测到调用应用程序编程接口的行为,拒绝所述应用程序编程接口创建弹窗。这样,将用户使用电子设备处于工作状态的场景纳入考虑,在用户处于工作状态时,例如,执行Office工作、展示PPT、玩游戏的过程中,阻止创建弹窗,从而避免弹窗的弹出,避免中断用户当前的操作,提升用户的工作效率;进一步地,辅之以弹窗白名单库,在用户处于工作状态时,将与弹窗白名单库的窗口信息进行缓存,以在用户处于非工作状态时,依据缓存的窗口信息创建弹窗,既避免了对用户的打扰,也没有用户遗漏可能的重要信息,提升了增值业务信息的推送成功率,增强了用户的增值业务体验,利于应用程序运营商的增值业务推广。
[0107] 图2为本发明的实施例二处理弹窗的方法流程示意图,如图2所示,本实施例的方法可以包括:
[0108] 步骤201,在操作系统加载用于拦截创建弹窗的弹窗钩子程序;
[0109] 本步骤中,弹窗钩子程序是Windows操作系统中的一处理消息的应用程序,通过Windows操作系统调用,可以将弹窗钩子程序加载至Windows操作系统中。这样,在应用程序(第三方应用程序)调用应用程序编程接口来创建弹窗,而还未创建时,弹窗钩子程序可以先捕获该创建行为,从而实现对创建行为的处理。
[0110] 作为一可选实施例,可以通过调用Windows操作系统的SetWindowsHookEx接口来加载弹窗钩子程序。对于其它操作系统的电子设备,可以通过注入的方法,将预先设置的弹窗钩子程序代码段注入到其它操作系统中,关于注入为公知技术,在此略去详述。
[0111] 步骤202,启动所述弹窗钩子程序;
[0112] 步骤203,监测电子设备的当前运行状态;
[0113] 本实施例中,利用启动的所述弹窗钩子程序监测电子设备的当前运行状态以及监测调用创建弹窗的应用程序编程接口的行为,并进行相应处理。
[0114] 步骤204,在所述当前运行状态与预先设置的工作状态库中的任一工作状态相匹配的条件下,监测调用创建弹窗的应用程序编程接口的行为;
[0115] 步骤205,如果监测到调用应用程序编程接口的行为,拒绝所述应用程序编程接口创建弹窗。
[0116] 本实施例中,步骤203至步骤205的过程分别和上述方法实施例一的步骤101至步骤103类似,此处不再赘述。
[0117] 本发明实施例二处理弹窗的方法,通过在操作系统加载用于拦截创建弹窗的弹窗钩子程序,启动弹窗钩子程序进行运行状态的监控以及弹窗创建的监控,可以实现对弹窗的处理。
[0118] 图3为本发明的实施例三处理弹窗的装置结构示意图,如图3所示,本实施例的装置可以包括:运行状态监测模块、工作状态匹配模块以及调用行为监测模块,其中,[0119] 运行状态监测模块31,用于监测电子设备的当前运行状态;
[0120] 工作状态匹配模块32,用于在所述当前运行状态与预先设置的工作状态库中的任一工作状态相匹配的条件下,监测调用创建弹窗的应用程序编程接口的行为;
[0121] 本实施例中,作为一可选实施例,工作状态库包括:电子设备处于外接显示器状态、电子设备处于全屏模式状态、非全屏模式状态下有预先设置的应用程序运行状态。
[0122] 本实施例中,作为一可选实施例,利用监控进程,例如,利用monitor.exe进程监控当前运行状态以及调用应用程序编程接口的行为。其中,监控进程包含两个线程,一线程用于对调用创建弹窗的应用程序编程接口的行为进行监控,另一线程用于对电子设备的当前运行状态进行监控。
[0123] 调用行为监测模块33,如果监测到调用应用程序编程接口的行为,拒绝所述应用程序编程接口创建弹窗。
[0124] 本实施例中,如果在用户处于工作状态的条件下,有第三方应用程序调用创建弹窗的应用程序编程接口的行为,为了不影响用户的正常工作状态,拒绝调用的应用程序编程接口创建弹窗的行为。
[0125] 本实施例中,作为一可选实施例,调用行为监测模块33包括:调用行为监测单元、置顶弹窗判断单元、调用行为拒绝单元以及调用行为允许单元(图中未示出),其中,[0126] 调用行为监测单元,用于在监测到调用应用程序编程接口的行为后,通知置顶弹窗判断单元;
[0127] 置顶弹窗判断单元,用于获取待创建的弹窗的窗口信息,依据所述窗口信息判断应用程序编程接口待创建的弹窗是否为置顶弹窗,如果是,通知调用行为拒绝单元;如果不是,通知调用行为允许单元;
[0128] 调用行为拒绝单元,用于拒绝所述应用程序编程接口创建弹窗;
[0129] 调用行为允许单元,如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,允许所述应用程序编程接口创建弹窗。
[0130] 本实施例中,作为一可选实施例,调用行为监测模块33还包括:
[0131] 弹窗匹配单元,用于拦截输出至调用行为拒绝单元的通知,判断获取的所述窗口信息是否与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,且所述窗口信息中是否携带有实时增值业务信息,如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,且所述窗口信息中携带有实时增值业务信息,通知调用行为允许单元;否则,通知调用行为拒绝单元。
[0132] 本实施例中,作为一可选实施例,所述如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配包括:
[0133] 提取所述窗口信息中包含的窗口名、窗口类名以及应用程序名;
[0134] 查询预先设置的弹窗白名单库,判断是否存在与提取的应用程序名相同的应用程序白名单;
[0135] 如果存在与提取的应用程序名相同的应用程序白名单,判断所述应用程序白名单下是否存在与提取的窗口类名相同的窗口类名白名单;
[0136] 如果存在与提取的窗口类名相同的窗口类名白名单,判断所述窗口类名白名单下是否存在与提取的窗口名相同的窗口名白名单,如果存在,确认获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配。
[0137] 本实施例中,作为一可选实施例,该装置还包括:
[0138] 弹窗缓存模块34,用于获取待创建的弹窗的窗口信息;如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,缓存所述待创建的弹窗的窗口信息;监测电子设备的当前运行状态;如果所述当前运行状态与预先设置的工作状态库中的所有工作状态都不匹配,依据缓存的所述窗口信息创建弹窗。
[0139] 本实施例中,作为一可选实施例,在用户处于工作状态的条件下,如果有第三方应用程序调用创建弹窗的应用程序编程接口的行为,可以缓存待创建的弹窗的窗口信息,以在用户处于非工作状态的条件下时,依据缓存的窗口信息创建弹窗,从而便于用户浏览,避免漏失重要的增值业务信息。
[0140] 本实施例中,作为一可选实施例,弹窗缓存模块34包括:窗口信息获取单元、缓存单元、当前运行状态监测单元以及弹窗创建单元(图中未示出),其中,
[0141] 窗口信息获取单元,用于获取待创建的弹窗的窗口信息;
[0142] 缓存单元,如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,缓存所述待创建的弹窗的窗口信息;
[0143] 当前运行状态监测单元,用于监测电子设备的当前运行状态;
[0144] 弹窗创建单元,如果所述当前运行状态与预先设置的工作状态库中的所有工作状态都不匹配,依据缓存的所述窗口信息创建弹窗。
[0145] 作为另一可选实施例,该装置还包括:
[0146] 工作状态不匹配处理模块35,用于在所述当前运行状态与预先设置的工作状态库中的任一工作状态都不匹配的条件下,监测调用创建弹窗的应用程序编程接口的行为;如果监测到调用应用程序编程接口的行为,获取待创建的弹窗的窗口信息;如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,依据所述窗口信息创建弹窗。
[0147] 本实施例中,作为一可选实施例,工作状态不匹配处理模块35包括:创建弹窗监测单元、信息获取单元以及弹窗创建单元(图中未示出),其中,
[0148] 创建弹窗监测单元,用于在所述当前运行状态与预先设置的工作状态库中的任一工作状态都不匹配的条件下,监测调用创建弹窗的应用程序编程接口的行为;
[0149] 信息获取单元,如果监测到调用应用程序编程接口的行为,获取待创建的弹窗的窗口信息;
[0150] 弹窗创建单元,如果获取的所述窗口信息与预先设置的弹窗白名单库中的任一弹窗白名单相匹配,依据所述窗口信息创建弹窗。
[0151] 作为另一可选实施例,工作状态不匹配处理模块35还包括:
[0152] 创建拒绝单元,如果获取的所述窗口信息与预先设置的弹窗白名单库中的所有弹窗白名单都不匹配,拒绝所述应用程序编程接口创建弹窗。
[0153] 作为再一可选实施例,该装置还包括:
[0154] 钩子程序注入模块36,用于在操作系统加载用于拦截创建弹窗的弹窗钩子程序;启动所述弹窗钩子程序。
[0155] 本实施例中,可以通过调用Windows操作系统的SetWindowsHookEx接口来加载弹窗钩子程序。
[0156] 本实施例的装置,可以用于执行图1和图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0157] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0158] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
[0159] 尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0160] 在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,″计算机可读介质″可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0161] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。
[0162] 在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0163] 本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。
[0164] 图4为本发明电子设备一个实施例的结构示意图,可以实现本发明图1-3所示实施例的流程,如图4所示,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的处理弹窗的方法。
[0165] 处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-3所示实施例的描述,在此不再赘述。
[0166] 该电子设备以多种形式存在,包括但不限于:
[0167] (1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
[0168] (2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
[0169] (3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
[0170] (4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
[0171] (5)其他具有数据交互功能的电子设备。
[0172] 本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0173] 为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
[0174] 通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本[0175] 发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0176] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。