一种页面事件响应方法和装置与流程

文档序号:15492073发布日期:2018-09-21 20:48阅读:95来源:国知局

本发明涉及计算机领域,特别是涉及一种页面事件响应方法及装置。



背景技术:

在现有的移动应用中,需要解决页面的动态布局,所谓动态布局就是页面在各种情况都不会出现布局混乱,元素重叠,空白过多,以及出现左右滚动条等情况。现有技术中,对于页面的事件,都依赖于移动终端原生代码的预先部署,在滑动页面,仅支持cell粒度的事件,没有细化到子控件层,导致了页面事件更新必须依赖发版,而对于子控件层的事件无法响应。也就是说,现有的移动页面事件只能响应到cell层,而对于cell层中包含的子控件,只有展示功能,不能响应该事件。

因此,页面事件如何响应到cell层的子控件是目前本领域技术人员有待解决的问题。



技术实现要素:

本发明实施例所要解决的技术问题是提供一种页面事件响应方法,以解决现有技术中由于页面事件不能响应到cell层的子控件,导致用户交互体验差的问题。

相应的,本发明实施例还提供了一种页面事件响应装置,用以保证上述方法的实现及应用。

为了解决上述问题,本发明是通过如下技术方案实现的:

第一方面提供一种页面事件响应方法,所述方法包括:

接收服务器发送的lua脚本和扩展标记语言xml配置文件,其中,所述xml配置文件中包括子控件的触摸字段,所述触摸字段用以表示子控件需要响应的事件;

利用所述lua脚本对所述xml配置文件中子控件的触摸字段进行处理,得到对应的原生代码;

接收用户与子控件产生的交互行为;

如果所述交互行为的代码对应所述原生代码,则为所述交互行为下发回调函数,响应所述交互行为。

可以的,所述方法还包括:

判断所述交互行为的代码是否与所述原生代码相对应;

如果否,继续判断所述交互行为的上层控件是否为cell,如果是,通过cell回调所述交互行为的响应。

可选的,所述方法还包括:

如果所述交互行为的上层控件不是cell,则通过事件响应链接将所述交互行为发送给上层控件进行响应,以便于所述上层控件执行判断所述交互行为的代码是否对应所述原生代码的步骤。

可选的,所述利用所述lua脚本对所述xml配置文件中子控件的触摸字段进行处理,得到对应的原生代码包括:

利用所述lua脚本对所述xml配置文件中子控件的触摸字段进行解析,得到代码对象;

利用回调函数callback行为对所述代码对象进行配置,得到对应的原生代码。

可选的,所述原生代码包括:交互行为对应的代码,其中,所述交互行为对应的代码包括:子控件、视图和列表分别对应的代码。

第二方面提供一种页面事件响应装置,包括:

第一接收模块,用于接收服务器发送的lua脚本和扩展标记语言xml配置文件,其中,所述xml配置文件中包括子控件的触摸字段,所述触摸字段用以表示子控件需要响应的事件;

处理模块,用于利用所述lua脚本对所述xml配置文件中子控件的触摸字段进行处理,得到对应的原生代码;

第二接收模块,用于接收用户与子控件产生的交互行为;

第一响应模块,用于在所述交互行为的代码对应所述原生代码时,为所述交互行为下发回调函数,响应所述交互行为。

可选的,所述装置还包括:

第一判断模块,用于判断所述交互行为的代码是否与所述原生代码相对应;

所述第一响应模块,还用于在所述第一判断模块判定所述交互行为的代码对应所述原生代码时,为所述交互行为下发回调函数,响应所述交互行为;

第二判断模块,用于在所述第一判断模块判定所述交互行为的代码不对应所述原生代码时,继续判断所述交互行为的上层控件是否为cell;

第二响应模块,用于在所述第二判断模块判定所述交互行为的上层控件为cell时,通过cell回调所述交互行为的响应。

可选的,所述装置还包括:

发送模块,用于在所述第二判断模块判定所述交互行为的上层控件不是cell时,通过事件响应链接将所述交互行为发送给上层控件进行响应,以便于所述上层控件执行判断所述交互行为的代码是否与所述原生代码相对应的步骤。

可选的,所述处理模块包括:

解析模块,用于利用所述lua脚本对所述xml配置文件中子控件的触摸字段进行解析,得到代码对象;

配置模块,用于利用所述回调函数callback行为对所述代码对象进行配置,得到对应的原生代码。

可选的,所述处理模块得到的原生代码包括:交互行为对应的代码,其中,所述交互行为对应的代码包括:子控件、视图和列表分别对应的代码。

与现有技术相比,本发明实施例包括以下优点:

本发明实施例中,接收服务器动态下发的lua脚本和扩展标记语言xml配置文件,并利用所述lua脚本对所述xml配置文件中子控件的触摸字段进行映射处理,得到对应的原生代码,以及在接收到用户交互行为时,为所述交互行为下发回调函数,响应所述交互行为。也就是说,本发明实施例中通过下发脚本的形式,动态指定页面上某个事件的跳转行为,解决了滑动页面事件不能响应到cell层的子控件,导致用户交互体验差的问题。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

图1是本发明实施例提供的一种页面事件响应方法的流程图;

图2是本发明实施例提供的一种页面事件响应方法的第一应用实例图;

图3是本发明实施例提供的一种页面事件响应方法的第二应用实例图;

图4是本发明实施例提供的一种页面事件响应方法的另一流程图;

图5是本发明实施例提供的一种事件响应的实例图;

图6是本发明实施例提供的一种页面事件响应装置的结构示意图;

图7是本发明实施例提供的一种页面事件响应装置的另一结构示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

请参阅图1,为本发明实施例提供的一种页面事件响应方法的流程图,所述方法具体可以包括如下步骤:

步骤101:接收服务器发送的lua脚本和扩展标记语言xml配置文件,其中,所述xml配置文件中包括子控件的触摸字段,所述触摸字段用以表示子控件需要响应的事件;

该实施例中,服务器预先配置lua脚本和扩展标记语言xml配置文件,并将该lua脚本和扩展标记语言xml配置文件发送给移动终端,即移动终端接收到服务器发送的lua脚本和扩展标记语言xml配置文件,其中,该实施例中的lua脚本很容易被c/c++代码调用,也可以反过来调用c/c++的函数,这使得lua脚本在应用程序中可以被广泛应用。lua脚本不仅仅作为扩展脚本,也可以作为普通的配置文件,代替xml,ini等文件格式,并且更容易理解和维护。

扩展标记语言(xml,extensiblemarkuplanguage),是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以通过方便的方式来建立,虽然xml占用的空间比二进制数据要占用更多的空间,但xml极其简单易于掌握和使用。

在该实施例中,如图2所示,在图2的右下角有一段文字,叫来自泡泡圈三生三世十里桃花,如果希望用户点击“三生三世十里桃花”这个文字的时候,不是播放视频,而是要进入一个叫“泡泡圈”的页面。基于此,服务器需要在下发的xml配置文中,给这段文字加一个行为,这个行为(文中用子控件的触摸字段,所述触摸字段用以表示子控件需要响应的事件来表示),比方说,这个行为叫做“jumptopaopao”。

该实施例中,xml配置文件用于描述一个cell和它的所有子控件的层级,相对位置关系,每个控件所要执行的行为等属性,xml配置文件不和c/c++/obj-c代码直接交互。

lua脚本在实例中的作用是将xml配置文件解析成代码对象,并对这个对象进行配置,例如指定文字,指定图片,指定行为,lua脚本可以通过桥接器转化为c/c++/obj-c代码,这样就可以在移动设备上执行。

步骤102:利用所述lua脚本对所述xml配置文件中子控件的触摸字段进行处理,得到对应的原生代码;

该实施例中,利用所述lua脚本对所述xml配置文件中子控件的触摸字段进行处理,得到对应的原生代码,具体过程包括:

1)移动终端利用所述lua脚本对所述xml配置文件中子控件的触摸字段进行解析,得到代码对象;

其一种解析过程为:首先,需要在lua脚本中实现xml的解析器,解析器读入xml配置文件的内容后,先生成一个lua对象,识别xml配置中的触摸字段,这个触摸字段名称通过预先定义的协议来指定,比如尺寸叫frame,颜色叫color,文字叫text,行为叫touch,这样xml解析器识别到xml配置里有这些字段,就在lua对象中生成对应的成员变量,有了这个lua对象之后,要通过一个虚拟栈把这个对象包括它的变量映射到c语言层,即得到对应的代码对象。

2)利用所述回调函数callback行为对所述代码对象进行配置,得到对应的原生代码。

其中,原生代码可以包括:交互行为对应的代码,其中,所述交互行为对应的代码包括:子控件、视图和列表分别对应的代码。

该步骤中,利用回调函数callback行为对所述代码对象进行配置的过程为:

callback行为由一个数组来构成,数组中包括了一组行为,每一个行为弹窗(alert),等等,可以按照我们的要求进行自定义,数据中包括了跳转的目标页面,上报的目标地址,弹窗的内容等,可以动态下发,这样lua脚本解析了这组数据的内容后,就有了行为队列这个成员变量,通过桥接器映射到c/c++后,去执行对应的行为,这些行为也都在c/c++代码层有预先定义,只要类型和上面描述的行为类型匹配,就可以执行行为。

也就是说,该实施例中,移动终端利用接收到lua脚本对扩展标记语言xml配置文件后进行解析和配置后,就能在本地映射出一个跳转到泡泡圈页面的原生代码。

步骤103:接收用户与子控件产生的交互行为;

该步骤中,如果用户点击移动终端上某个视频右下角或左下角泡泡圈的三生三世十里桃花,对移动终端的后台服务器来说,就是接收到用户与子控件产生的交互行为。

步骤104:如果所述交互行为的代码对应所述原生代码,则为所述交互行为下发回调函数,响应所述交互行为。

该步骤中,后台服务器先要判断所述原生代码是否是交互行为的原生代码。如果是,则说明交互行为的代码对应所述原生代码,则为该交互行为下发回调函数,响应所述交互行为。比如,在用户点击移动终端上某个视频右下角或左下角泡泡圈的三生三世十里桃花后,就跳转到三生三世十里桃花的页面了,具体图3所示。再比如,如果过几天,想让这个视频下的“来自泡泡圈的三生三世十里桃花”这个文字变成跳转到“热点频道”,那么,在服务器下发给移动终端的一个新的xml配置文件中,把“jumptopaopao”改成“jumptoredian”就可以了。

本发明实施例中,接收服务器动态下发的lua脚本和扩展标记语言xml配置文件,并利用所述lua脚本对所述xml配置文件中子控件的触摸字段进行映射处理,得到对应的原生代码,以及在接收到用户交互行为时,为所述交互行为下发回调函数,响应所述交互行为。也就是说,本发明实施例中通过下发脚本的形式,动态指定页面上某个事件的跳转行为,不但解决了滑动页面事件不能响应到cell层的子控件,导致用户交互体验差的问题,而且还保证了用户交互可以得到正确响应。

还请参阅图4,为本发明实施例提供的一种页面事件响应方法的另一流程图,所述方法包括:

步骤401:接收服务器发送的lua脚本和扩展标记语言xml配置文件,其中,所述xml配置文件中包括子控件的触摸字段,所述触摸字段用以表示子控件需要响应的事件;

步骤402:利用所述lua脚本对所述xml配置文件中子控件的触摸字段进行映射处理,得到对应的原生代码;

该实施例中,原生代码为移动设备要运行代码,目前移动设备只能通过c/c++/obj-c代码才可以运行,也就是说,能被移动设备运行的这些代码被称为原生代码。

步骤403:接收用户与子控件产生的交互行为;

该实施例中,步骤401至步骤403与步骤101至步骤103相同,具体详见上述,在此不再赘述。

步骤404;判断所述交互行为的代码是否与所述原生代码相对应,如果是,执行步骤405否则,执行步骤406;

步骤405:为所述交互行为下发回调函数,响应所述交互行为;

步骤406:继续判断所述交互行为的上层控件是否为cell,如果是,执行步骤407;否则,执行步骤408;

移动终端的界面存在一个事件响应链条的概念,如果一个视图是另一个视图的子视图,那么它们之间就存在链条关系,这样在一个视图中,通过nextresponder(下一响应者)方法,就可以获取到响应链的上层视图,因为所有的视图都直接或者间接是cell的子视图,所以逐层获取下一响应者,最终都会到达cell层。也就是说,cell是一种很特殊的视图,这种视图只用在滑动页面里,是滑动页面的基本单位。

步骤407:通过cell回调所述交互行为的响应;

如果是cell对象,会自带一个系统预设的事件响应,实现该响应函数就可以进行最终的事件处理。

步骤408:通过事件响应链接将所述交互行为发送给上层控件进行响应,以便于所述上层控件重新执行判断所述交互行为的代码是否与所述原生代码相对应的步骤,即上层控件重新执行步骤404。

如图5所示,如果位于第二层(layer2)中的子控件b对交互行为没有响应,则通过事件连接将该交互行为发送给上层控件,即第一层(layer1)中的子控件a中进行响应,如果layer1中的子控件a还没有响应,则将交互行为发送给cell,由cell通过动态解决方案进行处理。即该实施例中的响应顺序依次为:layer2->layer1->cell。

假如,某个网页视频的右下角有一段文字,叫来自泡泡圈,但是,希望用户点击这个文字的时候,不是跳转到对应的播放视频,是要进入一个叫“泡泡圈”的页面,此时,服务器在下发xml配置文件时,给某个页面上的一段文字加一个行为,比方这个行为叫做“jumptopaopao”,这样,移动终端的后台服务器就能利用lua脚本在本地映射出一个跳转到泡泡圈页面的原声代码。

本发明实施例中,对于滑动页面的事件响应基本停留在cell层面,然而对于cell中包含的子控件,只有展示功能,不能响应其事件,本实施例通过定义xml到子控件的新协议,在控件层定义事件行为,并且可以在某一层控件未定义事件的情况下向上层传递。即对未定义事件的控件可以将用户交互行为传递至上层控件,直至cell层处理,保证用户交互可以得到正确响应。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

请参阅图6,为本发明实施例提供的一种页面事件响应装置的结构示意图,具体可以包括如下模块:第一接收模块61、处理模块62、第二接收模块63和第一响应模块64,其中,

第一接收模块61,用于接收服务器发送的lua脚本和扩展标记语言xml配置文件,其中,所述xml配置文件中包括子控件的触摸字段,所述触摸字段用以表示子控件需要响应的事件;

处理模块62,用于利用所述lua脚本对所述xml配置文件中子控件的触摸字段进行处理,得到对应的原生代码;

第二接收模块63,用于接收用户与子控件产生的交互行为;

第一响应模块64,用于在所述交互行为的代码对应所述原生代码时,为所述交互行为下发回调函数,响应所述交互行为。

可选的,在另一实施例中,该实施例在上述实施例的基础上,所述装置还可以包括:第一判断模块71、第二判断模块72和第二响应模块73,其结构示意图如图7所示,其中,

所述第一判断模块71,用于判断所述交互行为的代码是否与所述原生代码相对应;

所述第一响应模块64,还用于在所述第一判断模块71判定所述交互行为的代码对应所述原生代码时,为所述交互行为下发回调函数,响应所述交互行为;

所述第二判断模块72,用于在所述第一判断模块71判定所述交互行为的代码不对应所述原生代码时,继续判断所述交互行为的上层控件是否为cell;

所述第二响应模块73,用于在所述第二判断模块72判定所述交互行为的上层控件为cell时,通过cell回调所述交互行为的响应。

可选的,在另一实施例中,该实施例在上述实施例的基础上,所述装置还可以包括:发送模块(图中未示),其中,

发送模块,用于在所述第二判断模块判定所述交互行为的上层控件不是cell时,通过事件响应链接将所述交互行为发送给上层控件进行响应,以便于所述上层控件执行判断所述交互行为的代码是否与所述原生代码相对应的步骤。

可以先的,在另一实施例中,该实施例在上述实施例的基础上,所述处理模块包括:解析模块和配置模块,其中,

解析模块,用于利用所述lua脚本对所述xml配置文件中子控件的触摸字段进行解析,得到代码对象;

配置模块,用于利用所述回调函数callback行为对所述代码对象进行配置,得到对应的原生代码。

其中,所述处理模块中解析模块得到的原生代码包括:交互行为对应的代码,其中,所述交互行为对应的代码包括:子控件、视图和列表分别对应的代码。

本发明实施例中,接收服务器动态下发的lua脚本和扩展标记语言xml配置文件,并利用所述lua脚本对所述xml配置文件中子控件的触摸字段进行映射处理,得到对应的原生代码,以及在接收到用户交互行为时,为所述交互行为下发回调函数,响应所述交互行为。也就是说,本发明实施例中通过下发脚本的形式,动态指定页面上某个事件的跳转行为,不但解决了滑动页面事件不能响应到cell层的子控件,导致用户交互体验差的问题,而且还保证了用户交互可以得到正确响应。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种方页面事件响应法和一种页面事件响应装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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