CN105912319B - 反向控制移动端页面的方法和装置 - Google Patents
反向控制移动端页面的方法和装置 Download PDFInfo
- Publication number
- CN105912319B CN105912319B CN201610202382.5A CN201610202382A CN105912319B CN 105912319 B CN105912319 B CN 105912319B CN 201610202382 A CN201610202382 A CN 201610202382A CN 105912319 B CN105912319 B CN 105912319B
- Authority
- CN
- China
- Prior art keywords
- event
- gesture
- click
- pressing
- moving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
Abstract
本发明提出一种反向控制移动端页面的方法和装置,该反向控制移动端页面的方法包括:接收其他终端发送的用于反向控制的触摸事件;根据所述触摸事件识别出手势事件,以及确定出待反向控制的元素;如果所述元素是HTML页面中的元素,根据所述手势事件为所述元素配置HTML参数,以使所述元素根据所述HTML参数进行处理以响应所述手势事件。该方法能够避开移动端操作系统对接口使用的限制,方便的实现对移动端页面的反向控制。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种反向控制移动端页面的方法和装置。
背景技术
在手机与车机的互联方案中,经常采用投影手机端界面到车机显示器的联机方案,此时用户在车机端进行的操作会同步传输到手机端,手机端接收到操作主动触发相关页面元素的绑定行为。
手机端显示的应用程序的页面是超文本标记语言(HyperText Markup Language,HTML)页面时,由于HTML页面在很多情况下都是通过网络动态加载,并且HTML5页面的上下文环境与应用程序的代码运行的上下文环境是相互独立的,所以需要有一套完善的机制来实现车机对手机端的HTML页面的反向控制。
相关技术中,通过使用手机系统底层事件接口模拟产生相关事件,从而在系统层面将事件传递给页面元素,从而触发页面元素的绑定行为。但是,现有的手机操作系统都限制了接口的使用,比如,在iOS系统中需要审核,在android系统中需要具有root权限。因此,通过手机系统底层事件接口实现的反向控制在应用上并不方便。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种反向控制移动端页面的方法,该方法可以避开移动端操作系统对接口使用的限制,方便的实现对移动端页面的反向控制。
本发明的另一个目的在于提出一种反向控制移动端页面的装置。
为达到上述目的,本发明第一方面实施例提出的反向控制移动端页面的方法,包括:接收其他终端发送的用于反向控制的触摸事件;根据所述触摸事件识别出手势事件,以及确定出待反向控制的元素;如果所述元素是HTML页面中的元素,根据所述手势事件为所述元素配置HTML参数,以使所述元素根据所述HTML参数进行处理以响应所述手势事件。
本发明第一方面实施例提出的反向控制移动端页面的方法,通过在待反向控制的元素是HTML页面中的元素时,根据手势事件为元素配置HTML参数,可以使得元素根据配置的HTML参数进行处理以响应手势事件,从而实现对HTML页面中元素的反向控制,并且该反向控制流程没有调用操作系统的接口,因此可以避开移动端操作系统对接口使用的限制,方便的实现对移动端页面的反向控制。
为达到上述目的,本发明第二方面实施例提出的反向控制移动端页面的装置,包括:通信模块,用于接收其他终端发送的用于反向控制的触摸事件;手势识别模块,用于根据所述触摸事件识别出手势事件,以及确定出待反向控制的元素;转换模块,用于如果所述元素是HTML页面中的元素,根据所述手势事件为所述元素配置HTML参数,以使所述元素根据所述HTML参数进行处理以响应所述手势事件。
本发明第二方面实施例提出的反向控制移动端页面的装置,通过在待反向控制的元素是HTML页面中的元素时,根据手势事件为元素配置HTML参数,可以使得元素根据配置的HTML参数进行处理以响应手势事件,从而实现对HTML页面中元素的反向控制,并且该反向控制流程没有调用操作系统的接口,因此可以避开移动端操作系统对接口使用的限制,方便的实现对移动端页面的反向控制。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明一个实施例提出的反向控制移动端页面的方法的流程示意图;
图2是本发明另一个实施例提出的反向控制移动端页面的方法的流程示意图;
图3是本发明实施例中单击事件识别流程中接收到按下事件后的示意图;
图4是本发明实施例中单击事件识别流程中接收到移动事件后的示意图;
图5是本发明实施例中单击事件识别流程中接收到松开事件后的示意图;
图6是本发明实施例中双击事件识别流程示意图;
图7是本发明实施例中双击事件识别流程中接收到移动事件后的示意图;
图8是本发明实施例中拖动事件识别流程中接收到按下事件后的示意图;
图9是本发明实施例中拖动事件识别流程中接收到移动事件后的示意图;
图10是本发明实施例中拖动事件识别流程中接收到松开事件后的示意图;
图11是本发明一个实施例提出的反向控制移动端页面的装置的结构示意图;
图12是本发明另一个实施例提出的反向控制移动端页面的装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的模块或具有相同或类似功能的模块。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本发明一个实施例提出的反向控制移动端页面的方法的流程示意图。本实施例的方法可以应用在移动端。
参见图1,本实施例的方法包括:
S11:接收其他终端发送的用于反向控制的触摸事件。
其他终端是指与移动端进行联网的对端。例如,在手机和车机的联网方案中,移动端是指手机,其他终端是指车机。
在车机端需要反向控制手机端时,车机可以向手机发送反向控制的事件,该事件是应用程序的原生事件,具体是触摸事件。
触摸事件包括:按下事件、移动事件和松开事件。
每种触摸事件可以包括相应的参数。一些具体示例中,每种触摸事件的表示及包括的参数可以如下所示:
第一种触摸事件:按下事件:NATIVE_EVENT_TOUCH_DOWN
(a)参数location表示按下位置坐标(x,y);
(b)参数points表示触控点数量(单指/双指/多指);
(c)参数timestamp表示发生时间。
第二种触摸事件:移动事件:NATIVE_EVENT_TOUCH_MOVE
(a)参数location表示移动到的位置坐标(x,y);
(b)参数points表示触控点数量(单指/双指/多指);
(c)参数timestamp表示发生时间。
第三种触摸事件:松开事件:NATIVE_EVENT_TOUCH_UP
S12:根据所述触摸事件识别出手势事件,以及确定出待反向控制的元素。
其中,手势事件是用于触发元素响应的事件。
手势事件包括:单击事件、双击事件、长按事件和拖动事件。
每种手势事件可以包括相应的参数。一些具体示例中,每种手势事件的表示及包括的参数可以如下所示:
第一种手势事件:单击事件:H5_EVENT_TYPE_CLICK
(a)参数location表示单击坐标(x,y);
(b)参数points表示触控点数量(单指/双指/多指);
(c)参数timestamp表示发生时间。
第二种手势事件:双击事件:H5_EVENT_TYPE_DOUBLECLICK
(a)参数location表示双击位置坐标(x,y);
(b)参数points表示触控点数量(单指/双指/多指)
(c)参数timestamp表示发生时间。
第三种手势事件:长按事件:H5_EVENT_TYPE_LONGPRESS
(a)参数location表示长按位置坐标(x,y);
(b)参数points表示触控点数量(单指/双指/多指);
(c)参数timestamp表示发生时间。
第四种手势事件:拖动事件:H5_EVENT_TYPE_DRAG
(a)参数location表示拖动到位置坐标(x,y);
(b)参数points表示触控点数量(单指/双指/多指);
(c)参数timestamp表示发生时间。
在手势事件识别时,手势事件的上述参数可以根据对应的触摸事件的参数获取,例如,单击事件的位置坐标、发生时间分别与按下事件的位置坐标、按下时间相同。在确定出手势事件的位置坐标后,可以将该位置坐标对应的元素确定为待反向控制的元素。
根据触摸事件识别出手势事件的具体流程可以参见后续描述。
S13:如果所述元素是HTML页面中的元素,根据所述手势事件为所述元素配置HTML参数,以使所述元素根据所述HTML参数进行处理以响应所述手势事件。
其中,HTML页面可以具体是指HTML5页面。
手势事件的开发语言与移动端的操作系统一致。例如,如果操作系统是iOS系统,则手势事件的语言是ObjectC,如果操作系统是android系统,则手势事件的语言是java。而应用程序加载的HTML页面的开发语言并不是原生语言,为了使得HTML页面中的元素可以响应手势事件,需要根据手势事件为HTML页面中的元素配置HTML参数,从而实现对HTML页面中元素的反向控制。
根据单击事件配置HTML参数的流程可以包括:
根据预先对HTML页面中的元素的标记信息,从单击事件的位置坐标对应的元素开始,从下至上查找类型是可控的元素,在查找到类型是可控的元素后,将该元素与HTML页面中的点击事件(click)绑定。
其中,元素的标记信息可以是标记元素的类型,类型可以分为可控和不可控,可控的元素能够响应单击事件,不可控的元素不能响应单击事件。
HTML页面中的元素是DOM元素,DOM元素采用树形结构排布,从下至上是指按照树形结构,从叶子元素到叶子元素的父元素再向根元素的方向进行。
根据拖动事件配置HTML参数的流程可以包括:
从拖动事件的位置坐标对应的元素开始,从下至上查找可滚动的元素,在查找到可滚动的元素后,判断该元素是否还满足如下条件中的任一项:
第一项条件:该元素是顶层元素(body),且该元素的尺寸大于视图尺寸;
第二项条件:该元素是除顶层元素之前的普通元素,且该元素的尺寸大于其父元素的尺寸。
如果该元素是可滚动的元素,且还满足上述任一项条件,则可以根据所述拖动事件的移动距离为所述元素配置HTML页面中的滚动参数。
其中,元素是否是可滚动的元素,可以根据元素的可滚动参数确定,HTML页面中该可滚动参数包括:overflow或者overflow-x和overflow-y,如果overflow不是hidden,或者,overflow-x和overflow-y都不是hidden,则可以确定该元素是可滚动的元素。
元素的尺寸、父元素的尺寸及视图尺寸可以根据HTML页面中的样式信息等确定。
拖动事件的移动距离可以根据拖动开始事件的位置坐标与拖动结束事件的位置坐标确定,将这两个位置坐标的差值作为移动位置。
根据移动距离设置的HTML页面中的滚动参数可以包括:scrollleft和scrolltop,其中,scrollleft用于确定横向的移动距离,scrolltop用于确定纵向的移动距离。
由于反向控制中经常使用的手势事件是单击事件和拖动事件,上述给出了如何根据单击事件和拖动事件配置HTML参数的方法,可以理解的是,根据双击事件和长按事件配置HTML参数的方式也可以参照执行,在此不再详细说明。
一些实施例中,如图2所示,该方法还可以包括:
S14:判断待反向控制的元素是否是HTML页面中的元素,若是,执行上述的S13,否则,执行S15。
其中,待反向控制的元素可以是HTML页面中的元素,或者,也可以是应用程序中可交互的原生控件,可交互的原生控件是指可以由手势事件直接进行控制的控件。
具体的,在手势事件识别时确定出位置坐标后,根据移动端操作系统提供的方法可以确定该位置的原生控件及控件描述信息,如果根据控件描述信息确定该控件是浏览器控件(webview),则可以确定待反向控制的元素是HTML页面中的元素,否则是可交互的原生控件。
S15:如果上述的元素是可交互的原生控件,则将识别出的手势事件发送给可交互的原生控件,以使可交互的原生控件响应手势事件。
由于可交互的原生控件与手势事件的语言一致,可以直接响应手势事件,从而完成对可交互的原生控件的反向控制。
在上述流程中,涉及了根据触摸事件识别出手势事件的流程,具体的该流程可以如下所示。
其中,在根据触摸事件识别手势事件的流程时,可以是接收到触摸事件后,同时启动对单击事件、双击事件、长按事件和拖动事件的识别。
一些实施例中,在单击事件识别时,可以包括如下流程:
如果接收的触摸事件是按下事件,对按下事件进行事件入栈;
如果接收的触摸事件是移动事件,判断移动距离是否小于预设距离值,如果小于,则对移动事件进行事件入栈;
如果接收的触摸事件是松开事件,则在启动识别时,判断启动时间是否在预设范围内,如果在预设范围内,则识别出单击事件。
上述的移动距离可以根据栈内的首个事件(按下事件)的位置坐标与当前事件(移动事件)的位置坐标确定,将这两个位置坐标的差值确定为移动距离。
上述的启动时间可以根据栈内的首个事件(按下事件)的发生时间与最后事件(按下事件或移动事件)的发生时间确定,将这两个时间的差值确定为启动时间。
上述的单击事件识别过程中,接收到各触摸事件的具体处理流程可以参见如下的实施例。
图3是本发明实施例中单击事件识别流程中接收到按下事件后的示意图。
参见图3,该流程包括:
S31:接收到触摸事件是按下事件。
S32:判断识别是否已启动,若是,执行S33,否则,执行S34。
其中,可以设置是否启动的标识,根据该标识可以判断识别是否已启动。
初始时,可以设置该标识为识别未启动的状态,当启动识别后,将该标识更新为识别已启动的状态。
S33:结束识别。
S34:启动识别,并对按下事件进行事件入栈。
在没有启动识别时,启动识别,并且,将按下事件放入栈内。
在将事件放入栈内时,可以按序放入,从而在后续流程中可以识别出栈内的首次事件和最后事件。
图4是本发明实施例中单击事件识别流程中接收到移动事件后的示意图。
参见图4,该流程包括:
S41:接收到触摸事件是移动事件。
S42:判断识别是否已启动,若是,执行S43,否则,执行S45。
其中,可以设置是否启动的标识,根据该标识可以判断识别是否已启动。
初始时,可以设置该标识为识别未启动的状态,当启动识别后,将该标识更新为识别已启动的状态。
S43:判断移动距离是否小于第一预设距离值,若是,执行S44,否则,执行S45。
预设距离值可以根据经验等设置。
S44:对所述移动事件进行事件入栈。
S45:结束识别。
图5是本发明实施例中单击事件识别流程中接收到松开事件后的示意图。
参见图5,该流程包括:
S51:接收到触摸事件是松开事件。
S52:判断识别是否已启动,若是,执行S53,否则,执行S55。
其中,可以设置是否启动的标识,根据该标识可以判断识别是否已启动。
初始时,可以设置该标识为识别未启动的状态,当启动识别后,将该标识更新为识别已启动的状态。
S53:判断启动时间是否在预设范围内,若是,执行S54,否则,执行S55。
预设范围可以根据经验等设置。
S54:确定识别出单击事件。
S55:结束识别。
一些实施例中,在双击事件识别时,可以基于单击事件的识别,包括如下流程。
图6是本发明实施例中双击事件识别流程示意图。参见图6,该流程包括:
S61:识别出单击事件。
其中,单击事件的识别流程可以参见上述实施例,在此不再详细说明。
S62:判断上次单击事件的时间是否不为空,若是,执行S63,否则,执行S64。
其中,识别出的单击事件可以是一个或多个,如果为一个时,上次单击事件是指该一个单击事件,如果为多个,则可以确定每个单击事件的发生时间,将距离当前时间最近的单击事件作为上次单击事件。
初始时,上次单击事件的时间可以设置为空,后续可以根据情况更新。
S63:在不为空时,计算当前时间与上次单击事件的时间之间的差值,并判断该差值是否小于预设间隔,若是,执行S65,否则执行S64。
S64:在为空或者小于预设间隔时,将上次单击事件的时间更新为当前时间。
S65:将上次单击事件的时间更新为空。
S66:确定识别出双击事件。
一些实施例中,在长按事件识别时,可以包括如下流程:
如果接收的触摸事件是按下事件,对按下事件进行事件入栈;
如果接收的触摸事件是移动事件,判断移动距离是否小于第二预设距离值,如果小于,则判断启动时间是否大于预设持续时间;如果大于,确定识别出长按事件;
如果接收的触摸事件是松开事件,则结束识别。
上述的移动距离可以根据栈内的首个事件(按下事件)的位置坐标与当前事件(移动事件)的位置坐标确定,将这两个位置坐标的差值确定为移动距离。
上述的启动时间可以根据栈内的首个事件(按下事件)的发生时间与当前件(移动事件)的发生时间确定,将这两个时间的差值确定为启动时间。
图7是本发明实施例中双击事件识别流程中接收到移动事件后的示意图。
参见图7,该流程包括:
S71:接收到触摸事件是移动事件。
S72:判断识别是否已启动,若是,执行S73,否则,执行S76。
S73:判断移动距离是否小于第二预设距离值,若是,执行S74,否则,执行S76。
第二预设距离值可以根据经验等设置,与上述的第一预设距离值可以相同或不同。
S74:判断启动时间是否大于预设持续时间,若是,执行S75,否则,执行S76。
预设持续时间可以根据经验等设置。
S75:确定识别出长按事件。
S76:结束识别。
一些实施例中,在拖动事件识别时,可以包括如下流程:
如果接收的触摸事件是按下事件,对按下事件进行事件入栈,以及,获取按下事件的位置坐标对应的控件,在所述控件是可拖动控件时,发送拖动开始事件;
如果接收的触摸事件是移动事件,对移动事件进行事件入栈,以及判断移动事件的位置坐标是否在可拖动控件内部,如果在内部,则发送拖动进行事件;
如果接收的触摸事件是松开事件,对松开事件进行事件入栈,以及,判断松开事件的位置坐标是否在可拖动控件内部,如果在内部,则发送拖动结束事件。
上述的拖动事件识别过程中,接收到各触摸事件的具体处理流程可以参见如下的实施例。
图8是本发明实施例中拖动事件识别流程中接收到按下事件后的示意图。
参见图8,该流程包括:
S81:接收到触摸事件是按下事件。
S82:初始化识别。
初始化识别时例如包括:判断识别是否已启动,如果已启动,则结束识别,如果未启动,则启动识别。
S83:在启动识别后,对按下事件进行事件入栈。
S84:获取按下事件的位置坐标对应的控件,并判断该控件是否是可拖动控件,若是,执行S85,否则,执行S86。
可拖动控件例如包括:UIScrollView、BTapDetectingView、UIWebView。
如果按下事件的位置坐标处的控件是上述控件的任一种,则确定该控件是可拖动控件。
S85:发送拖动开始事件。
此时可以识别出拖动开始事件,并可以发送拖动开始事件。
S86:结束识别。
图9是本发明实施例中拖动事件识别流程中接收到移动事件后的示意图。
参见图9,该流程包括:
S91:接收到触摸事件是移动事件。
S92:判断识别是否已启动,若是,执行S94,否则,执行S93。
S93:结束识别。
S94:对移动事件进行事件入栈。
S95:判断移动事件的位置坐标是否在可拖动控件内部,若是,执行S96,否则,执行S97。
S96:发送拖动进行事件。
此时可以识别出拖动进行事件,并可以发送拖动进行事件。
S97:发送拖动结束事件。
此时可以识别出拖动结束事件,并可以发送拖动结束事件。
图10是本发明实施例中拖动事件识别流程中接收到松开事件后的示意图。参见图10,该流程包括:
S101:接收到触摸事件是松开事件。
S102:判断识别是否已启动,若是,执行S103,否则,执行S106。
S103:对松开事件进行事件入栈。
S104:判断松开事件的位置坐标是否在可拖动控件内部,若是,执行S105,否则,执行S106。
S105:发送拖动结束事件。
此时可以识别出拖动结束事件,并可以发送拖动结束事件。
S106:结束识别。
可以理解的是,在上述手势事件识别过程中,在识别出单击事件、双击事件或长按事件后,可以一次性将相应的手势事件发送给后续的用于事件分发的模块。而在拖动事件的识别过程中,由于拖动事件是持续一段时间的事件,因此可以在整个拖动过程中多次发送事件给后续的用于事件分发的模块。
本实施例中,通过在待反向控制的元素是HTML页面中的元素时,根据手势事件为元素配置HTML参数,可以使得元素根据配置的HTML参数进行处理以响应手势事件,从而实现对HTML页面中元素的反向控制,并且该反向控制流程没有调用操作系统的接口,因此可以避开移动端操作系统对接口使用的限制,方便的实现对移动端页面的反向控制。
图11是本发明一个实施例提出的反向控制移动端页面的装置的结构示意图。参见图11,该装置110包括:通信模块111、手势识别模块112和转换模块113。
通信模块111用于接收其他终端发送的用于反向控制的触摸事件;
以其他终端是车机为例,则参见图12,通信模块可以接收车机发送的触摸事件。
手势识别模块112用于根据所述触摸事件识别出手势事件,以及确定出待反向控制的元素;
转换模块113用于如果所述元素是HTML页面中的元素,根据所述手势事件为所述元素配置HTML参数,以使所述元素根据所述HTML参数进行处理以响应所述手势事件。
可选的,所述触摸事件包括:按下事件、移动事件和松开事件;
所述手势事件包括:单击事件、双击事件、长按事件和拖动事件;
所述手势识别模块具体用于:
在接收到所述触摸事件时,同时启动对单击事件、双击事件、长按事件和拖动事件的识别。
一些实施例中,参见图12,手势识别模块112包括:第一单元、第二单元、第三单元和第四单元;
所述第一单元用于:
如果接收的触摸事件是按下事件,对按下事件进行事件入栈;
如果接收的触摸事件是移动事件,判断移动距离是否小于预设距离值,如果小于,则对移动事件进行事件入栈;
如果接收的触摸事件是松开事件,判断启动时间是否在预设范围内,如果在预设范围内,则确定识别出单击事件。
所述第二单元用于:
识别出单击事件;
判断上次单击事件的时间是否不为空;
如果不为空,计算当前时间与上次单击事件的时间的差值,并判断所述差值是否小于预设时间间隔;
如果小于,将上次单击事件的时间更新为空,并确定识别出双击事件。
所述第三单元用于:
如果接收的触摸事件是按下事件,对按下事件进行事件入栈;
如果接收的触摸事件是移动事件,判断移动距离是否小于第二预设距离值,如果小于,则判断启动时间是否大于预设持续时间;如果大于,确定识别出长按事件;
如果接收的触摸事件是松开事件,则结束识别。
所述第四单元用于:
如果接收的触摸事件是按下事件,对按下事件进行事件入栈,以及,获取按下事件的位置坐标对应的控件,在所述控件是可拖动控件时,发送拖动开始事件;
如果接收的触摸事件是移动事件,对移动事件进行事件入栈,以及判断移动事件的位置坐标是否在可拖动控件内部,如果在内部,则发送拖动进行事件;
如果接收的触摸事件是松开事件,对松开事件进行事件入栈,以及,判断松开事件的位置坐标是否在可拖动控件内部,如果在内部,则发送拖动结束事件。
所述转换模块用于根据所述手势事件为所述元素配置HTML参数,包括:
如果所述手势事件是单击事件,则根据预先对HTML页面中的元素的标记信息,从单击事件的位置坐标对应的元素开始,从下至上查找类型是可控的元素,在查找到类型是可控的元素后,将所述元素与HTML页面中的点击事件绑定。
所述转换模块用于根据所述手势事件为所述元素配置HTML参数,包括:
如果所述手势事件是拖动事件,从拖动事件的位置坐标对应的元素开始,从下至上查找可滚动的元素,在查找到可滚动的元素后,判断所述元素是否还满足如下条件中的任一项:
所述元素是顶层元素,且所述元素的尺寸大于视图尺寸;或者,
所述元素是普通元素,且所述元素的尺寸大于所述元素的父元素的尺寸;
如果所述元素是可滚动元素,且还满足上述条件中的任一项,根据所述拖动事件的移动距离为所述元素配置HTML页面中的滚动参数。
一些实施例中,参见图12,该装置110还包括:
事件分发模块114,用于判断待反向控制的元素是否是HTML页面中的元素,并在所述元素是HTML页面中的元素时,将所述手势事件发送给所述转换模块,在所述元素是可交互的原生控件时,将所述手势事件发送给交互模块;
交互模块115,用于将接收的所述手势事件发送给可交互的原生控件,以使可交互的原生控件响应所述手势事件。
可以理解的是,本实施例与上述的方法实施例对应,具体内容可以参见方法实施例中的相关描述,在此不再详细说明。
本实施例中,通过在待反向控制的元素是HTML页面中的元素时,根据手势事件为元素配置HTML参数,可以使得元素根据配置的HTML参数进行处理以响应手势事件,从而实现对HTML页面中元素的反向控制,并且该反向控制流程没有调用操作系统的接口,因此可以避开移动端操作系统对接口使用的限制,方便的实现对移动端页面的反向控制。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (19)
1.一种反向控制移动端页面的方法,其特征在于,包括:
接收其他终端发送的用于反向控制的触摸事件;
根据所述触摸事件识别出手势事件,以及确定出待反向控制的元素;
判断所述待反向控制的元素是否是应用程序中可交互的原生控件;
若否,则确定所述元素是HTML页面中的元素,根据所述手势事件为所述元素配置HTML参数,以使所述元素根据所述HTML参数进行处理以响应所述手势事件。
2.根据权利要求1所述的方法,其特征在于,
所述触摸事件包括:按下事件、移动事件和松开事件;
所述手势事件包括:单击事件、双击事件、长按事件和拖动事件。
3.根据权利要求2所述的方法,其特征在于,所述根据所述触摸事件识别出手势事件,包括:
在接收到所述触摸事件时,同时启动对单击事件、双击事件、长按事件和拖动事件的识别。
4.根据权利要求2所述的方法,其特征在于,在识别单击事件时,所述根据所述触摸事件识别出手势事件,包括:
如果接收的触摸事件是按下事件,对按下事件进行事件入栈;
如果接收的触摸事件是移动事件,判断移动距离是否小于预设距离值,如果小于,则对移动事件进行事件入栈;
如果接收的触摸事件是松开事件,判断启动时间是否在预设范围内,如果在预设范围内,则确定识别出单击事件。
5.根据权利要求2所述的方法,其特征在于,在识别双击事件时,所述根据所述触摸事件识别出手势事件,包括:
识别出单击事件;
判断上次单击事件的时间是否不为空;
如果不为空,计算当前时间与上次单击事件的时间的差值,并判断所述差值是否小于预设时间间隔;
如果小于,将上次单击事件的时间更新为空,并确定识别出双击事件。
6.根据权利要求2所述的方法,其特征在于,在识别长按事件时,所述根据所述触摸事件识别出手势事件,包括:
如果接收的触摸事件是按下事件,对按下事件进行事件入栈;
如果接收的触摸事件是移动事件,判断移动距离是否小于第二预设距离值,如果小于,则判断启动时间是否大于预设持续时间;如果大于,确定识别出长按事件;
如果接收的触摸事件是松开事件,则结束识别。
7.根据权利要求2所述的方法,其特征在于,在识别拖动事件时,所述拖动事件包括:拖动开始事件、拖动进行事件和拖动结束事件,所述根据所述触摸事件识别出手势事件,包括:
如果接收的触摸事件是按下事件,对按下事件进行事件入栈,以及,获取按下事件的位置坐标对应的控件,在所述控件是可拖动控件时,发送拖动开始事件;
如果接收的触摸事件是移动事件,对移动事件进行事件入栈,以及判断移动事件的位置坐标是否在可拖动控件内部,如果在内部,则发送拖动进行事件;
如果接收的触摸事件是松开事件,对松开事件进行事件入栈,以及,判断松开事件的位置坐标是否在可拖动控件内部,如果在内部,则发送拖动结束事件。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述根据所述手势事件为所述元素配置HTML参数,包括:
如果所述手势事件是单击事件,则根据预先对HTML页面中的元素的标记信息,从单击事件的位置坐标对应的元素开始,从下至上查找类型是可控的元素,在查找到类型是可控的元素后,将所述元素与HTML页面中的点击事件绑定。
9.根据权利要求1-7任一项所述的方法,其特征在于,所述根据所述手势事件为所述元素配置HTML参数,包括:
如果所述手势事件是拖动事件,从拖动事件的位置坐标对应的元素开始,从下至上查找可滚动的元素,在查找到可滚动的元素后,判断所述元素是否还满足如下条件中的任一项:
所述元素是顶层元素,且所述元素的尺寸大于视图尺寸;或者,
所述元素是普通元素,且所述元素的尺寸大于所述元素的父元素的尺寸;
如果所述元素是可滚动元素,且还满足上述条件中的任一项,根据所述拖动事件的移动距离为所述元素配置HTML页面中的滚动参数。
10.根据权利要求1所述的方法,其特征在于,还包括:
如果所述待反向控制的元素是可交互的原生控件,则将识别出的手势事件发送给可交互的原生控件,以使可交互的原生控件响应所述手势事件。
11.一种反向控制移动端页面的装置,其特征在于,包括:
通信模块,用于接收其他终端发送的用于反向控制的触摸事件;
手势识别模块,用于根据所述触摸事件识别出手势事件,以及确定出待反向控制的元素;
转换模块,用于判断所述待反向控制的元素是否是应用程序中可交互的原生控件;若否,则确定所述元素是HTML页面中的元素,根据所述手势事件为所述元素配置HTML参数,以使所述元素根据所述HTML参数进行处理以响应所述手势事件。
12.根据权利要求11所述的装置,其特征在于,所述触摸事件包括:按下事件、移动事件和松开事件;所述手势事件包括:单击事件、双击事件、长按事件和拖动事件;所述手势识别模块具体用于:
在接收到所述触摸事件时,同时启动对单击事件、双击事件、长按事件和拖动事件的识别。
13.根据权利要求11所述的装置,其特征在于,所述手势识别模块包括用于识别单击事件的第一单元,所述第一单元用于:
如果接收的触摸事件是按下事件,对按下事件进行事件入栈;
如果接收的触摸事件是移动事件,判断移动距离是否小于预设距离值,如果小于,则对移动事件进行事件入栈;
如果接收的触摸事件是松开事件,判断启动时间是否在预设范围内,如果在预设范围内,则确定识别出单击事件。
14.根据权利要求11所述的装置,其特征在于,所述手势识别模块包括用于识别双击事件的第二单元,所述第二单元用于:
识别出单击事件;
判断上次单击事件的时间是否不为空;
如果不为空,计算当前时间与上次单击事件的时间的差值,并判断所述差值是否小于预设时间间隔;
如果小于,将上次单击事件的时间更新为空,并确定识别出双击事件。
15.根据权利要求11所述的装置,其特征在于,所述手势识别模块包括用于识别长按事件的第三单元,所述第三单元用于:
如果接收的触摸事件是按下事件,对按下事件进行事件入栈;
如果接收的触摸事件是移动事件,判断移动距离是否小于第二预设距离值,如果小于,则判断启动时间是否大于预设持续时间;如果大于,确定识别出长按事件;
如果接收的触摸事件是松开事件,则结束识别。
16.根据权利要求12所述的装置,其特征在于,所述拖动事件包括:拖动开始事件、拖动进行事件和拖动结束事件,所述手势识别模块包括用于识别拖动事件的第四单元,所述第四单元用于:
如果接收的触摸事件是按下事件,对按下事件进行事件入栈,以及,获取按下事件的位置坐标对应的控件,在所述控件是可拖动控件时,发送拖动开始事件;
如果接收的触摸事件是移动事件,对移动事件进行事件入栈,以及判断移动事件的位置坐标是否在可拖动控件内部,如果在内部,则发送拖动进行事件;
如果接收的触摸事件是松开事件,对松开事件进行事件入栈,以及,判断松开事件的位置坐标是否在可拖动控件内部,如果在内部,则发送拖动结束事件。
17.根据权利要求11-16任一项所述的装置,其特征在于,所述转换模块用于根据所述手势事件为所述元素配置HTML参数,包括:
如果所述手势事件是单击事件,则根据预先对HTML页面中的元素的标记信息,从单击事件的位置坐标对应的元素开始,从下至上查找类型是可控的元素,在查找到类型是可控的元素后,将所述元素与HTML页面中的点击事件绑定。
18.根据权利要求11-16任一项所述的装置,其特征在于,所述转换模块用于根据所述手势事件为所述元素配置HTML参数,包括:
如果所述手势事件是拖动事件,从拖动事件的位置坐标对应的元素开始,从下至上查找可滚动的元素,在查找到可滚动的元素后,判断所述元素是否还满足如下条件中的任一项:
所述元素是顶层元素,且所述元素的尺寸大于视图尺寸;或者,
所述元素是普通元素,且所述元素的尺寸大于所述元素的父元素的尺寸;
如果所述元素是可滚动元素,且还满足上述条件中的任一项,根据所述拖动事件的移动距离为所述元素配置HTML页面中的滚动参数。
19.根据权利要求11所述的装置,其特征在于,还包括:
事件分发模块,用于在所述元素是HTML页面中的元素时,将所述手势事件发送给所述转换模块,在所述元素是可交互的原生控件时,将所述手势事件发送给交互模块;
交互模块,用于将接收的所述手势事件发送给可交互的原生控件,以使可交互的原生控件响应所述手势事件。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610202382.5A CN105912319B (zh) | 2016-03-31 | 2016-03-31 | 反向控制移动端页面的方法和装置 |
PCT/CN2016/108933 WO2017166858A1 (zh) | 2016-03-31 | 2016-12-07 | 反向控制移动端页面的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610202382.5A CN105912319B (zh) | 2016-03-31 | 2016-03-31 | 反向控制移动端页面的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105912319A CN105912319A (zh) | 2016-08-31 |
CN105912319B true CN105912319B (zh) | 2019-03-12 |
Family
ID=56745274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610202382.5A Active CN105912319B (zh) | 2016-03-31 | 2016-03-31 | 反向控制移动端页面的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105912319B (zh) |
WO (1) | WO2017166858A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912319B (zh) * | 2016-03-31 | 2019-03-12 | 百度在线网络技术(北京)有限公司 | 反向控制移动端页面的方法和装置 |
CN108268205A (zh) * | 2016-12-30 | 2018-07-10 | 乐视汽车(北京)有限公司 | 车机对移动终端的触屏反控方法和系统 |
CN110794999B (zh) * | 2019-10-28 | 2021-01-15 | 珠海格力电器股份有限公司 | 基于界面分割的自动控制方法、装置及终端 |
CN112637539A (zh) * | 2020-12-15 | 2021-04-09 | 浪潮云信息技术股份公司 | 一种基于Canvas绘制录像回放时间轴的方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8174502B2 (en) * | 2008-03-04 | 2012-05-08 | Apple Inc. | Touch event processing for web pages |
US8416196B2 (en) * | 2008-03-04 | 2013-04-09 | Apple Inc. | Touch event model programming interface |
CN101840299A (zh) * | 2010-03-18 | 2010-09-22 | 华为终端有限公司 | 一种触摸操作方法、装置和移动终端 |
CN103076919B (zh) * | 2012-12-29 | 2016-04-13 | 广东志成冠军集团有限公司 | 一种无线触摸遥控方法和系统 |
CN103984494A (zh) * | 2013-02-07 | 2014-08-13 | 上海帛茂信息科技有限公司 | 用于多种设备间的直觉式用户互动系统及方法 |
KR101384603B1 (ko) * | 2013-02-20 | 2014-04-11 | 주식회사 알엔웨어 | 무선 영상 송수신 및 역방향 제어 시스템 |
CN104571981A (zh) * | 2013-10-14 | 2015-04-29 | 苏州峰通光电有限公司 | 一种显示控制终端及一种车用电子装置 |
CN104035714B (zh) * | 2014-06-24 | 2017-05-03 | 中科创达软件股份有限公司 | 一种基于安卓系统的触摸事件处理方法、装置和设备 |
CN105912319B (zh) * | 2016-03-31 | 2019-03-12 | 百度在线网络技术(北京)有限公司 | 反向控制移动端页面的方法和装置 |
-
2016
- 2016-03-31 CN CN201610202382.5A patent/CN105912319B/zh active Active
- 2016-12-07 WO PCT/CN2016/108933 patent/WO2017166858A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN105912319A (zh) | 2016-08-31 |
WO2017166858A1 (zh) | 2017-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105912319B (zh) | 反向控制移动端页面的方法和装置 | |
US9857970B2 (en) | Copy and staple gestures | |
US10282086B2 (en) | Brush, carbon-copy, and fill gestures | |
US8566717B2 (en) | Rendering teaching animations on a user-interface display | |
EP2529288B1 (en) | Edge gestures | |
US8321810B2 (en) | Configuring an adaptive input device with selected graphical images | |
US20170075549A1 (en) | Link Gestures | |
TWI533191B (zh) | 用於使用者介面的電腦實施方法及運算裝置 | |
EP2580643B1 (en) | Jump, checkmark, and strikethrough gestures | |
WO2017118329A1 (zh) | 标签栏的控制方法和装置 | |
US20110185299A1 (en) | Stamp Gestures | |
EP3564807A1 (en) | Flexible display device control method and apparatus | |
US20110191719A1 (en) | Cut, Punch-Out, and Rip Gestures | |
US20110191704A1 (en) | Contextual multiplexing gestures | |
US20170300221A1 (en) | Erase, Circle, Prioritize and Application Tray Gestures | |
CN106034178A (zh) | 一种智能终端上应用的切换方法及装置 | |
CN103150103B (zh) | 手势操作物件与视窗的方法及系统 | |
CN105892792A (zh) | 终端设备的操作方法和终端设备 | |
CN106843559A (zh) | 用户指令识别及处理方法、装置 | |
WO2010131122A2 (en) | User interface to provide enhanced control of an application program | |
TW201828027A (zh) | 標籤欄的控制方法和裝置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |