一种消息推送方法、计算机可读存储介质及终端设备与流程

文档序号:16068858发布日期:2018-11-24 12:56阅读:148来源:国知局

本发明属于计算机技术领域,尤其涉及一种消息推送方法、计算机可读存储介质及终端设备。

背景技术

随着移动互联网的快速发展以及智能化终端设备的普及,人们越来越倾向于使用终端设备来获取信息和服务,传统的终端设备中安装的应用程序客户端主动向服务器拉取信息的方式存在诸多不足,因此推送技术应运而生。推送服务器的推送技术不需要用户不停刷新应用程序客户端来检查消息更新,推送服务器会自动将推送消息源源不断地发送给应用程序客户端,大大提高了客户端和服务器之间的交互性能。但目前的消息推送方法一般是在某些固定的时间将消息推送给用户,推送的实时性难以保证,用户体验较差。



技术实现要素:

有鉴于此,本发明实施例提供了一种消息推送方法、计算机可读存储介质及终端设备,以解决目前的消息推送方法实时性难以保证,用户体验较差的问题。

本发明实施例的第一方面提供了一种消息推送方法,可以包括:

获取在用户的终端设备上显示的窗口标题名称;

将所述窗口标题名称与预设的关键词配置文件中的各个关键词依次进行匹配,所述关键词配置文件中包括与预设的各种消息类型分别对应的关键词子集,每个关键词子集中包括一个以上的关键词;

若匹配成功,则将与所述窗口标题名称匹配成功的关键词对应的消息类型确定为优选消息类型;

在预设的推送消息数据库中选取指定数目的优选推送消息,并将选取的所述优选推送消息推送至所述终端设备,所述优选推送消息为消息类型与所述优选消息类型一致的推送消息。

本发明实施例的第二方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如下步骤:

获取在用户的终端设备上显示的窗口标题名称;

将所述窗口标题名称与预设的关键词配置文件中的各个关键词依次进行匹配,所述关键词配置文件中包括与预设的各种消息类型分别对应的关键词子集,每个关键词子集中包括一个以上的关键词;

若匹配成功,则将与所述窗口标题名称匹配成功的关键词对应的消息类型确定为优选消息类型;

在预设的推送消息数据库中选取指定数目的优选推送消息,并将选取的所述优选推送消息推送至所述终端设备,所述优选推送消息为消息类型与所述优选消息类型一致的推送消息。

本发明实施例的第三方面提供了一种消息推送终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如下步骤:

获取在用户的终端设备上显示的窗口标题名称;

将所述窗口标题名称与预设的关键词配置文件中的各个关键词依次进行匹配,所述关键词配置文件中包括与预设的各种消息类型分别对应的关键词子集,每个关键词子集中包括一个以上的关键词;

若匹配成功,则将与所述窗口标题名称匹配成功的关键词对应的消息类型确定为优选消息类型;

在预设的推送消息数据库中选取指定数目的优选推送消息,并将选取的所述优选推送消息推送至所述终端设备,所述优选推送消息为消息类型与所述优选消息类型一致的推送消息。

本发明实施例与现有技术相比存在的有益效果是:本发明实施例首先获取在用户的终端设备上显示的窗口标题名称,然后将所述窗口标题名称与预设的关键词配置文件中的各个关键词依次进行匹配,若匹配成功,则将与所述窗口标题名称匹配成功的关键词对应的消息类型确定为优选消息类型,最后在预设的推送消息数据库中选取指定数目的优选推送消息,并将选取的所述优选推送消息推送至所述终端设备。通过本发明实施例,可以根据用户当前正在打开查看的窗口,为其推送与之对应的推送消息,保证了消息推送的实时性,用户体验大大提升。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例中一种消息推送方法的一个实施例流程图;

图2为对关键词配置文件进行更新的示意流程图;

图3为本发明实施例中一种消息推送装置的一个实施例结构图;

图4为本发明实施例中一种消息推送终端设备的示意框图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1,本发明实施例中一种消息推送方法的一个实施例可以包括:

步骤s101,获取在用户的终端设备上显示的窗口标题名称。

所述窗口标题名称可以为当前用户正在使用的应用程序(app)窗口的标题栏中的标题名称。

具体地,可以对终端设备的系统提供的应用程序编程接口(applicationprogramminginterface,api)中的idprocess和idthresd进行置空,获取当前系统内的所有用户进程消息,然后通过进程处理函数处理这些用户进程消息,最后对这些已处理过的用户进程消息进行标识,从而实现在不影响应用程序正常运行的同时,获取到应用程序的进程名称和打开窗口的窗口标题名称。

可选的,可以在该终端设备中注册hook函数监控访问应用程序的进程,通过在该终端设备中注册的该hook函数获取访问该应用程序的进程的用户进程消息。其中,hook函数,也即钩子函数,是消息处理机制的一个平台,应用程序可以在上面设置子程序以监视窗口消息,而且所监视的窗口可以是其他进程所创建的,当窗口消息到达后,在执行窗口处理函数之前处理该窗口消息。

另外,hook机制允许应用程序截获处理消息或特定事件,钩子实际上是一个处理消息的程序段,通过系统调用,将hook函数挂入系统,在弹窗消息未到达目标窗口之前,hook函数就先捕获该窗口消息,进而hook函数可以加工处理该窗口消息,也可以不作处理而继续传递该窗口消息,还可以强制结束该窗口消息的传递。

步骤s102,将所述窗口标题名称与预设的关键词配置文件中的各个关键词依次进行匹配。

优选地,在将所述窗口标题名称与预设的关键词配置文件中的各个关键词依次进行匹配之前,还可以通过如图2所示的过程对所述关键词配置文件进行更新:

步骤s201,向预设的配置服务器发送配置更新请求。

由于关键词可能是随着时间不断变化的,因此所述关键词配置文件也会相应地不断发生变化,所述配置服务器用于存储当前最新的关键词配置文件,为终端设备提供更新的标准。

步骤s202,接收所述配置服务器反馈的配置信息。

所述配置信息中包括第一消息摘要值,所述第一消息摘要值为使用预设的消息摘要算法对所述配置服务器中的关键词配置文件进行处理得到的消息摘要值,在本实例中,所述消息摘要算法可以为md5算法、sha-1算法以及其它类似的算法。消息摘要算法可以把任意长度的输入变换成固定长度的输出,这种转换是一种压缩映射,也就是,输出的长度通常远小于输入的长度,不同的输入可能会散列成相同的输出,而不可能从输出值来唯一的确定输入值,简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的过程。

步骤s203,判断所述第一消息摘要值是否与第二消息摘要值一致。

所述第二消息摘要值为使用所述消息摘要算法对本地存储的关键词配置文件进行处理得到的消息摘要值。

若所述第一消息摘要值与所述第二消息摘要值不一致,则说明本地存储的关键词配置文件与所述配置服务器中的关键词配置文件不一致,也就是说本地存储的关键词配置文件不是最新的版本,需要对其进行更新,此时执行步骤s204,若所述第一消息摘要值与所述第二消息摘要值一致,则说明本地存储的关键词配置文件与所述配置服务器中的关键词配置文件一致,也就是说本地存储的关键词配置文件已经是最新的版本,无需对其进行更新,此时执行步骤s205。

步骤s204,下载所述配置服务器中的关键词配置文件,并使用所述配置服务器中的关键词配置文件替换本地存储的关键词配置文件。

步骤s205,保持本地存储的关键词配置文件。

上述过程为终端设备主动更新关键词配置文件的过程,在本实施例的另一种可能实现中,可以由所述配置服务器来指示终端设备进行关键词配置文件的更新,即当所述配置服务器中的关键词配置文件发生变化时,所述配置服务器将当前最新的关键词配置文件发送给终端设备,终端设备接收到该配置文件后,使用该配置文件替换本地存储的关键词配置文件。

所述关键词配置文件中包括与预设的各种消息类型分别对应的关键词子集,每个关键词子集中包括一个以上的关键词。例如,可以划分广告类、新闻资讯类、系统通知类等消息类型,每种类型的推送信息均设置与之对应的关键词子集。例如,广告类的关键词子集中可以包括:“广告”、“促销”、“优惠”、“降价”等关键词。

优选地,还可以为各个关键词设置优先级,具体可以由用户根据自己的使用习惯来进行设置,本实施对此不作具体限定。

在进行匹配时,首先从所述关键词配置文件中选取优先级最高且尚未被选取过的一个关键词作为当前关键词,然后在所述窗口标题名称中查找所述当前关键词,若在所述窗口标题名称中未查找到所述当前关键词,则返回执行所述从所述关键词配置文件中选取优先级最高且尚未被选取过的一个关键词作为当前关键词的步骤,若在所述窗口标题名称中查找到所述当前关键词,则确定所述窗口标题名称与所述当前关键词匹配成功。若遍历完所有关键词,仍未在所述窗口标题名称中查找到任意一个关键词,则确定匹配失败。

步骤s103,判断是否匹配成功。

也即判断在所述窗口标题名称中是否包含所述关键词配置文件中的任意一个关键词。若匹配不成功,则执行步骤s104,若匹配成功,则执行步骤s105及其后续步骤。

步骤s104,不进行消息推送。

步骤s105,将与所述窗口标题名称匹配成功的关键词对应的消息类型确定为优选消息类型。

步骤s106,在预设的推送消息数据库中选取指定数目的优选推送消息,并将选取的所述优选推送消息推送至所述终端设备。

所述优选推送消息为消息类型与所述优选消息类型一致的推送消息。

具体地,首先从历史统计记录中分别获取各个优选推送消息在指定时间段内的推送次数和点击次数,然后根据下式分别计算各个优选推送消息的优选指数:

其中,n为优选推送消息的序号,1≤n≤n,n为优选推送消息的总数目,clicknumn为第n个优选推送消息的点击次数,sendnumn为第n个优选推送消息的推送次数,min为最小值函数,ξ1和ξ2均为预设的权重系数,且ξ1+ξ2=1,例如,可以设置ξ1=ξ2=0.5,priindexn为第n个优选推送消息的优选指数。

最后按照所述优先级指数从大到小的顺序依次从所述推送消息数据库中选取指定数目的优选推送消息。

优选地,所述指定数目的设置过程可以包括:

首先,获取所述窗口标题名称在所述终端设备上的显示时长。

然后,从历史统计记录中分别获取所述窗口标题名称在指定时间段内在各个目标设备上的显示时长。

所述目标设备是作为所述历史统计记录的统计对象的终端设备。

最后,根据下式计算所述指定数目:

其中,showtime为所述窗口标题名称在所述终端设备上的显示时长,hn为目标设备的序号,1≤hn≤hn,hn为目标设备的总数目,hishowtimehn为所述窗口标题名称在第hn个目标设备上的显示时长,benchnum为预设的基准数目,其取值可以根据实际情况进行设置,例如,可以将其设置为3、5、10等等。maxtime=max(hishowtime1,hishowtime2,......,hishowtimehn,......,hishowtimehn),min为最小值函数,max为最大值函数,floor为向下取整函数,snum为所述指定数目。

综上所述,本发明实施例首先获取在用户的终端设备上显示的窗口标题名称,然后将所述窗口标题名称与预设的关键词配置文件中的各个关键词依次进行匹配,若匹配成功,则将与所述窗口标题名称匹配成功的关键词对应的消息类型确定为优选消息类型,最后在预设的推送消息数据库中选取指定数目的优选推送消息,并将选取的所述优选推送消息推送至所述终端设备。通过本发明实施例,可以根据用户当前正在打开查看的窗口,为其推送与之对应的推送消息,保证了消息推送的实时性,用户体验大大提升。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

对应于上文实施例所述的一种消息推送方法,图3示出了本发明实施例提供的一种消息推送装置的一个实施例结构图。

本实施例中,一种消息推送装置可以包括:

窗口标题名称获取模块301,用于获取在用户的终端设备上显示的窗口标题名称;

关键词匹配模块302,用于将所述窗口标题名称与预设的关键词配置文件中的各个关键词依次进行匹配,所述关键词配置文件中包括与预设的各种消息类型分别对应的关键词子集,每个关键词子集中包括一个以上的关键词;

优选消息类型确定模块303,用于若匹配成功,则将与所述窗口标题名称匹配成功的关键词对应的消息类型确定为优选消息类型;

优选推送消息选取模块304,用于在预设的推送消息数据库中选取指定数目的优选推送消息,所述优选推送消息为消息类型与所述优选消息类型一致的推送消息;

优选推送消息推送模块305,用于将选取的所述优选推送消息推送至所述终端设备。

进一步地,所述消息推送装置还可以包括:

更新请求发送模块,用于向预设的配置服务器发送配置更新请求;

反馈信息接收模块,用于接收所述配置服务器反馈的配置信息,所述配置信息中包括第一消息摘要值,所述第一消息摘要值为使用预设的消息摘要算法对所述配置服务器中的关键词配置文件进行处理得到的消息摘要值;

摘要值判断模块,用于判断所述第一消息摘要值是否与第二消息摘要值一致,所述第二消息摘要值为使用所述消息摘要算法对本地存储的关键词配置文件进行处理得到的消息摘要值;

配置文件替换模块,用于若所述第一消息摘要值与所述第二消息摘要值不一致,则下载所述配置服务器中的关键词配置文件,并使用所述配置服务器中的关键词配置文件替换本地存储的关键词配置文件。

进一步地,所述关键词匹配模块可以包括:

当前关键词选取单元,用于从所述关键词配置文件中选取优先级最高且尚未被选取过的一个关键词作为当前关键词;

当前关键词查找单元,用于在所述窗口标题名称中查找所述当前关键词;

匹配成功确定单元,用于若在所述窗口标题名称中查找到所述当前关键词,则确定所述窗口标题名称与所述当前关键词匹配成功。

进一步地,所述优选推送消息选取模块可以包括:

数据获取单元,用于从历史统计记录中分别获取各个优选推送消息在指定时间段内的推送次数和点击次数;

优选指数计算单元,用于根据下式分别计算各个优选推送消息的优选指数:

其中,n为优选推送消息的序号,1≤n≤n,n为优选推送消息的总数目,clicknumn为第n个优选推送消息的点击次数,sendnumn为第n个优选推送消息的推送次数,min为最小值函数,ξ1和ξ2均为预设的权重系数,且ξ1+ξ2=1,priindexn为第n个优选推送消息的优选指数;

优选推送消息选取单元,用于按照所述优先级指数从大到小的顺序依次从所述推送消息数据库中选取指定数目的优选推送消息。

进一步地,所述消息推送装置还可以包括:

第一显示时长获取模块,用于获取所述窗口标题名称在所述终端设备上的显示时长;

第二显示时长获取模块,用于从历史统计记录中分别获取所述窗口标题名称在指定时间段内在各个目标设备上的显示时长,所述目标设备是作为所述历史统计记录的统计对象的终端设备;

指定数目计算模块,用于根据下式计算所述指定数目:

其中,showtime为所述窗口标题名称在所述终端设备上的显示时长,hn为目标设备的序号,1≤hn≤hn,hn为目标设备的总数目,hishowtimehn为所述窗口标题名称在第hn个目标设备上的显示时长,benchnum为预设的基准数目,maxtime=max(hishowtime1,hishowtime2,......,hishowtimehn,......,hishowtimehn),min为最小值函数,max为最大值函数,floor为向下取整函数,snum为所述指定数目。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

图4示出了本发明实施例提供的一种消息推送终端设备的示意框图,为了便于说明,仅示出了与本发明实施例相关的部分。

在本实施例中,所述消息推送终端设备4可以是手机、平板电脑、智能手表、智能手环以及智能眼镜等计算设备。该消息推送终端设备4可包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机可读指令42,例如执行上述的消息推送方法的计算机可读指令。所述处理器40执行所述计算机可读指令42时实现上述各个消息推送方法实施例中的步骤,例如图1所示的步骤s101至s106。或者,所述处理器40执行所述计算机可读指令42时实现上述各装置实施例中各模块/单元的功能,例如图3所示模块301至305的功能。

示例性的,所述计算机可读指令42可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器41中,并由所述处理器40执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令42在所述消息推送终端设备4中的执行过程。

所述处理器40可以是中央处理单元(centralprocessingunit,cpu),还可以是其它通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器41可以是所述消息推送终端设备4的内部存储单元,例如消息推送终端设备4的硬盘或内存。所述存储器41也可以是所述消息推送终端设备4的外部存储设备,例如所述消息推送终端设备4上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器41还可以既包括所述消息推送终端设备4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机可读指令以及所述消息推送终端设备4所需的其它指令和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。

在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机可读指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储计算机可读指令的介质。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1