移动终端点击事件的识别方法和装置
技术领域
本说明书涉及终端技术领域,尤其涉及一种移动终端点击事件的识别方法和装置。
背景技术
随着互联网技术的快速发展,可在终端设备的应用软件(Application,APP)中配置浏览器控件,以实现网页浏览等功能。在使用浏览器控件浏览网页的过程中,如何有效、准确的识别点击事件对用户的浏览体验起着至关重要的作用。
发明内容
有鉴于此,本说明书提供一种移动终端点击事件的识别方法和装置。
具体地,本说明书是通过如下技术方案实现的:
一种移动终端点击事件的识别方法,包括:
记录移动终端触摸屏幕检测到的触摸事件;
当点击事件被触发时,根据记录的所述触摸事件判断所述点击事件的触发时机是否处于页面滚动的过程中;
若所述点击事件的触发时机处于页面滚动的过程中,则取消所述点击事件。
一种移动终端点击事件的识别装置,包括:
事件记录单元,记录移动终端触摸屏幕检测到的触摸事件;
滚动判断单元,当点击事件被触发时,根据记录的所述触摸事件判断所述点击事件的触发时机是否处于页面滚动的过程中;
点击取消单元,若所述点击事件的触发时机处于页面滚动的过程中,则取消所述点击事件。
一种移动终端点击事件的识别装置,包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与**逻辑对应的机器可执行指令,所述处理器被促使:
记录移动终端触摸屏幕检测到的触摸事件;
当点击事件被触发时,根据记录的所述触摸事件判断所述点击事件的触发时机是否处于页面滚动的过程中;
若所述点击事件的触发时机处于页面滚动的过程中,则取消所述点击事件。
由以上描述可以看出,本说明书可在点击事件被触发时,根据记录的触摸事件判断所述点击事件的触发时机是否处于页面滚动的过程中,并在所述点击事件的触发时机处于页面滚动的过程中时,取消所述点击事件,防止对用户操作意图的误判,提升点击事件识别的准确率。
附图说明
图1是本说明书一示例性实施例示出的一种移动终端点击事件的识别方法的流程示意图。
图2是本说明书一示例性实施例示出的另一种移动终端点击事件的识别方法的流程示意图。
图3是本说明书一示例性实施例示出的一种记录触摸事件的方法的流程示意图。
图4是本说明书一示例性实施例示出的一种用于移动终端点击事件的识别装置的一结构示意图。
图5是本说明书一示例性实施例示出的一种移动终端点击事件的识别装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1是本说明书一示例性实施例示出的一种移动终端点击事件的识别方法的流程示意图。
所述移动终端点击事件的识别方法可以应用在移动终端中,例如,平板电脑、手机、PDA(Personal Digital Assistant,掌上电脑)等,本说明书对此不作特殊限制。
请参考图1,所述移动终端点击事件的识别方法可以包括以下步骤:
步骤102,记录移动终端触摸屏幕检测到的触摸事件。
在本实施例中,所述触摸事件可以包括:touchstart事件、touchmove事件、touchend事件、touchcancel事件、scroll事件等。
在本实施例中,可以根据相关规则记录触摸事件的事件名和触摸事件的时间戳,所述时间戳通常是所述触摸事件发生的时间点。
步骤104,当点击事件被触发时,根据记录的所述触摸事件判断所述点击事件的触发时机是否处于页面滚动的过程中。
在本实施例中,所述点击事件可由第三方控件独立检测,所述点击事件的检测方式可以参照相关技术,本说明书对此不作特殊限制。
当检测到点击事件被触发时,可以根据记录的触摸事件判断所述点击事件的触发时机是否处于页面滚动的过程中,即判断用户是否在页面滚动的过程中触发该点击事件。
步骤106,若所述点击事件的触发时机处于页面滚动的过程中,则取消所述点击事件。
基于前述步骤104的判断结果,若所述点击事件的触发时机处于页面滚动的过程中,则可说明所述点击事件用于停止页面滚动,而非针对页面的某个内容输入的浏览指令,因此,可取消所述点击事件,防止页面跳转。
由以上描述可以看出,本说明书可在点击事件被触发时,根据记录的触摸事件判断所述点击事件的触发时机是否处于页面滚动的过程中,并在所述点击事件的触发时机处于页面滚动的过程中时,取消所述点击事件,防止对用户操作意图的误判,提升点击事件识别的准确率。
图2是本说明书一示例性实施例示出的另一种移动终端点击事件的识别方法的流程示意图。
请参考图2,所述移动终端点击事件的识别方法可以包括以下步骤:
步骤202,当移动终端的浏览器控件是UIWebView控件时,记录移动终端触摸屏幕检测到的触摸事件。
在本实施例中,浏览器控件包括多种类别,例如,iOS系统的UIWebView控件,iOS系统的WKWebView控件,Android系统的UC3内核,Android的UC4内核等。
在上述浏览器控件中,WKWebView控件、UC3内核、UC4内核通常都可以较为准确的识别点击事件。因此,在本实施例中,可先判断移动终端的浏览器控件类别,若浏览器控件类别是UIWebView控件,则可以执行后续步骤,记录移动终端触摸屏幕检测到的触摸事件。若浏览器控件类别不是UIWebView控件,则可不执行后续步骤。
在本实施例中,请参考图3,记录触摸事件的过程可以包括以下步骤:
步骤2021,当检测到的触摸事件时,判断所述触摸事件是否为指定类别的触摸事件。
在本实施例中,所述触摸事件可以包括:touchstart事件、touchmove事件、touchend事件、touchcancel事件、scroll事件等。其中,各种触摸事件的触发时机可参照相关技术,本说明书在此不再一一赘述。
所述指定类别的触摸事件可由开发人员预先进行设置。例如,可将所述指定类别的触摸事件设置为:touchcancel事件、scroll事件等。
在本实施例中,若检测到的触摸事件是touchcancel事件或scroll事件,则可以执行步骤2022。
若检测到的触摸事件是touchstart事件、touchmove事件或touchend事件,则可以执行步骤2023。
步骤2022,若所述触摸事件是所述指定类别的触摸事件,则对所述触摸事件进行事件名修改,并记录修改后的事件名和所述触摸事件对应的时间戳。
在本实施例中,记录触摸事件通常是指记录触摸事件的事件名和所述触摸事件对应的时间戳,所述时间戳通常是所述触摸事件被触发的时间点。当然,还可以记录所述触摸事件的其他信息,例如,触摸事件的属性信息等,本说明书对此不作特殊限制。
基于前述步骤2021的判断结果,当检测到的触摸事件是所述指定类别的触摸事件时,可对该触摸事件的事件名进行修改,然后记录修改后的事件名和该触摸事件对应的时间戳。
例如,当检测到的触摸事件是touchcancel事件时,可将touchcancel事件的事件名修改为touchend,然后保存touchend和所述touchcancel事件的时间戳之间的对应关系。
又例如,当检测到的触摸事件是scroll事件时,可先根据所述scroll事件的属性信息判断所述scroll事件是全局页面滚动还是区域页面滚动。具体而言,可先获取当前作用节点event.target的返回值,若返回值是document,则可确定所述scroll事件是全局页面滚动,若返回值不是document,则可确定所述scroll事件是区域页面滚动,即是页面中某个区域在滚动,而非整个页面在滚动。
当所述scroll事件是全局页面滚动时,可将scroll事件的事件名修改为scroll:window;当所述scroll事件是区域页面滚动时,将scroll事件的事件名修改为scroll:target。
当然,根据scroll事件的不同情形,也可以将其事件名修改为其他事件名,只要能区分全局页面滚动和区域页面滚动即可,本说明书对此不作特殊限制。
步骤2023,若所述触摸事件不是所述指定类别的触摸事件,则记录所述触摸事件的事件名和所述触摸事件对应的时间戳。
基于前述步骤2021的判断结果,当检测到的触摸事件不是所述指定类别的触摸事件时,可直接记录所述触摸事件的事件名和所述触摸事件对应的时间戳。
例如,当检测到的触摸事件是touchstart事件时,可记录touchstart和其时间戳之间的对应关系。
又例如,当检测到的触摸事件是touchmove事件时,可记录touchmove和其时间戳之间的对应关系。
再例如,当检测到的触摸事件是touchend事件时,可记录touchend和其时间戳之间的对应关系。
步骤2024,当记录下新的一组touchstart-touchend事件后,判断已记录的touchstart-touchend组数是否超过N。
在本实施例中,当记录一条新的触摸事件后,可判断是否刚记录下新的一组touchstart-touchend事件。其中,一组touchstart-touchend事件通常是指touchstart事件、*、touchend事件,“*”号可代表[0,无穷)个touchmove事件、scroll:window事件或scroll:target事件。即,一组touchstart-touchend事件通常是指由touchstart开头,由touchend结尾的一组事件记录。具体而言,可在记录的触摸事件是touchend事件后进行判断。
序号 |
事件名 |
时间戳 |
1 |
touchstart |
T1 |
2 |
touchmove |
T2 |
3 |
touchend |
T3 |
表1
序号 |
事件名 |
时间戳 |
1 |
touchstart |
T11 |
2 |
touchmove |
T12 |
3 |
scroll:target |
T13 |
4 |
touchend |
T14 |
表2
请参考表1和表2,表1和表2分别出示了两组不同的touchstart-touchend事件。当然,表1和表2仅为示例性的说明,在实际应用中,一组touchstart-touchend事件还可能有其他各种表现形式,本说明书在此不再一一赘述。
在本实施例中,当记录下新的一组touchstart-touchend事件后,可判断当前已记录的touchstart-touchend组数是否超过N。其中,N为大于等于1的自然数,其具体取值可以由开发人员进行设置,例如,N等于2。
值得注意的是,在时间相邻的两组touchstart-touchend事件之间还可以记录有其他触摸事件,例如,scroll:target、scroll:window等,本说明书对此不作特殊限制。
步骤2025,若已记录的touchstart-touchend组数超过N,则根据时间戳删除最近N组touchstart-touchend事件之前记录的触摸事件,其中,N为大于等于1的自然数。
基于前述步骤2024的判断结果,若确定已记录的touchstart-touchend组数超过N,根据时间戳删除最近N组touchstart-touchend事件之前记录的触摸事件,即仅保留最近N组touchstart-touchend事件。
以N的取值等于2为例,可仅保留最近2组touchstart-touchend事件。假设最近两组touchstart-touchend事件分别如表1和表2,其中,时间戳T1早于时间戳T11,则可以删除时间戳早于T1的所有记录。
当然,在实际应用中,T3和T11之间还可能存在其他触摸事件的记录,这部分触摸事件的时间戳晚于T1,因此也需要保留。
步骤204,当点击事件被触发时,根据记录的所述触摸事件判断所述点击事件的触发时机是否处于页面滚动的过程中。
在本实施例中,当点击事件(click事件)被触发时,可根据当前记录的触摸事件判断该点击事件是否是在页面滚动的过程中被触发。由于页面滚动可分别全局页面滚动和区域页面滚动,因此可以分别进行判断。
仍以N的取值等于2为例,当记录的触摸事件是全局页面滚动时,即当记录的滚动事件是scroll:window时,可判断第一组touchstart-touchend事件和第二组touchstart-touchend事件之间是否存在scroll:window事件,并且判断第二组touchstart-touchend事件中是否存在scroll:window事件。
若第一组touchstart-touchend事件和第二组touchstart-touchend事件之间不存在scroll:window事件,且第二组touchstart-touchend事件中存在scroll:window事件,则可确定所述点击事件的触发时机处于页面滚动的过程中。若不满足上述条件,则可以确定所述点击事件的触发时机未处于页面滚动的过程中。
其中,第一组touchstart-touchend事件通常是指时间戳相对较早的一组touchstart-touchend事件,相应的,第二组touchstart-touchend事件通常是指时间戳相对较晚的一组touchstart-touchend事件。
序号 |
事件名 |
时间戳 |
1 |
touchstart |
T21 |
2 |
touchmove |
T22 |
3 |
touchend |
T23 |
4 |
touchstart |
T24 |
5 |
touchmove |
T25 |
6 |
scroll:window |
T26 |
7 |
touchend |
T27 |
表3
请参考表3所示的记录,第一组touchstart-touchend事件指的是序号为1-3的表项,第二组touchstart-touchend事件指的是序号为4-7的表项。在表3所示的记录中,第一组touchstart-touchend事件和第二组touchstart-touchend事件之间不存在scroll:window事件、且第二组touchstart-touchend事件中存在scroll:window事件(表3所示第6条表项),则可以确定所述点击事件的触发时机处于页面滚动的过程中。
序号 |
事件名 |
时间戳 |
1 |
touchstart |
T31 |
2 |
touchmove |
T32 |
3 |
touchend |
T33 |
4 |
scroll:window |
T34 |
5 |
touchstart |
T35 |
6 |
touchmove |
T36 |
7 |
scroll:window |
T37 |
8 |
touchend |
T38 |
表4
请参考表4所示的记录,第一组touchstart-touchend事件指的是序号为1-3的表项,第二组touchstart-touchend事件指的是序号为5-8的表项。在表4所示的记录中,第一组touchstart-touchend事件和第二组touchstart-touchend事件之间存在scroll:window事件(表4所示第4条表项),则可以确定所述点击事件的触发时机未处于页面滚动的过程中。
仍以N的取值等于2为例,当记录的触摸事件是区域页面滚动时,即当记录的滚动事件是scroll:target时,可判断第一组touchstart-touchend事件中是否存在scroll:target事件,并且判断第二组touchstart-touchend事件中是否存在scroll:target事件,以及判断第二组touchstart-touchend事件后是否存在scroll:target事件。
若第一组touchstart-touchend事件中不存在scroll:target事件,且第二组touchstart-touchend事件中存在scroll:target事件,则可确定所述点击事件的触发时机处于页面滚动的过程中。或者,若第一组touchstart-touchend事件中不存在scroll:target事件,且第二组touchstart-touchend事件后存在scroll:target事件,则也可以确定所述点击事件的触发时机处于页面滚动的过程中。若不满足上述条件,则可以确定所述点击事件的触发时机未处于页面滚动的过程中。
序号 |
事件名 |
时间戳 |
1 |
touchstart |
T41 |
2 |
touchmove |
T42 |
3 |
touchend |
T43 |
4 |
touchstart |
T44 |
5 |
touchmove |
T45 |
6 |
scroll:target |
T46 |
7 |
touchend |
T47 |
表5
请参考表5所示的记录,第一组touchstart-touchend事件指的是序号为1-3的表项,第二组touchstart-touchend事件指的是序号为4-7的表项。在表5所示的记录中,第一组touchstart-touchend事件中不存在scroll:target事件,且第二组touchstart-touchend事件中存在scroll:target事件(表5所示第6条表项),则可以确定所述点击事件的触发时机处于页面滚动的过程中。
序号 |
事件名 |
时间戳 |
1 |
touchstart |
T51 |
2 |
touchmove |
T52 |
3 |
scroll:target |
T53 |
4 |
touchend |
T54 |
5 |
touchstart |
T55 |
6 |
scroll:target |
T56 |
7 |
touchend |
T57 |
表6
请参考表6所示的记录,第一组touchstart-touchend事件指的是序号为1-4的表项,第二组touchstart-touchend事件指的是序号为5-7的表项。在表6所示的记录中,第一组touchstart-touchend事件中存在scroll:target事件(表6所示第3条表项),则可以确定所述点击事件的触发时机未处于页面滚动的过程中。
当然,在实际应用中,记录的触发事件还可能是其他形式的,依据上述规则进行判断即可,本说明书在此不再一一赘述。
此外,当N的取值为其他数值时,开发人员可以根据N的取值设置相应的判断规则,本说明书对此不作特殊限制。
步骤206,若所述点击事件的触发时机处于页面滚动的过程中,则取消所述点击事件。
基于前述步骤204的判断结果,若所述点击事件的触发时机处于页面滚动的过程中,则可说明所述点击事件用于停止页面滚动,而非针对页面的某个内容输入的浏览指令,因此,可取消所述点击事件,防止页面跳转。
步骤208,若所述点击事件的触发时机未处于页面滚动的过程中,则允许发出所述点击事件。
基于前述步骤204的判断结果,若所述点击事件的触发时机未处于页面滚动的过程中,则可说明所述点击事件通常是用于浏览指定的链接,因此,可允许发出所述点击事件。
由以上描述可以看出,本说明书可在点击事件被触发时,根据记录的触摸事件判断所述点击事件的触发时机是否处于页面滚动的过程中,并在所述点击事件的触发时机处于页面滚动的过程中时,取消所述点击事件,防止对用户操作意图的误判,提升点击事件识别的准确率。
需要说明的是,在实际应用中,也可以归纳未处于页面滚动过程中的触摸事件规则,以进行判断,本说明书对此不作特殊限制。
与前述移动终端点击事件的识别方法的实施例相对应,本说明书还提供了移动终端点击事件的识别装置的实施例。
本说明书移动终端点击事件的识别装置的实施例可以应用在移动终端上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在移动终端的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书移动终端点击事件的识别装置所在移动终端的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的移动终端通常根据该移动终端的实际功能,还可以包括其他硬件,对此不再赘述。
图5是本说明书一示例性实施例示出的一种移动终端点击事件的识别装置的框图。
请参考图5,所述移动终端点击事件的识别装置400可以应用在前述图4所示的移动终端中,包括有:事件记录单元401、滚动判断单元402、点击取消单元403以及点击允许单元404。
其中,事件记录单元401,记录移动终端触摸屏幕检测到的触摸事件;
滚动判断单元402,当点击事件被触发时,根据记录的所述触摸事件判断所述点击事件的触发时机是否处于页面滚动的过程中;
点击取消单元403,若所述点击事件的触发时机处于页面滚动的过程中,则取消所述点击事件。
点击允许单元404,若所述点击事件的触发时机未处于页面滚动的过程中,则允许发出所述点击事件。
可选的,所述事件记录单元401,当移动终端的浏览器控件是UIWebView控件时,记录移动终端触摸屏幕检测到的触摸事件。
可选的,所述事件记录单元401,当检测到的触摸事件是指定类别的触摸事件时,对所述触摸事件进行事件名修改,并记录修改后的事件名和所述触摸事件对应的时间戳;
当检测到的触摸事件不是所述指定类别的触摸事件时,记录所述触摸事件的事件名和所述触摸事件对应的时间戳;
当记录下新的一组touchstart-touchend事件后,判断已记录的touchstart-touchend组数是否超过N;
若已记录的touchstart-touchend组数超过N,则根据时间戳删除最近N组touchstart-touchend事件之前记录的触摸事件,其中,N为大于等于1的自然数。
可选的,当所述指定类别的触摸事件是touchcancel事件时,所述事件记录单元401,将touchcancel事件的事件名修改为touchend;
当所述指定类别的触摸事件是scroll事件时,所述事件记录单元401,根据scroll事件的属性信息判断所述scroll事件是全局页面滚动还是区域页面滚动;当所述scroll事件是全局页面滚动时,将scroll事件的事件名修改为scroll:window;当所述scroll事件是区域页面滚动时,将scroll事件的事件名修改为scroll:target。
可选的,当N等于2时,所述滚动判断单元402:
当记录的触摸事件是全局页面滚动时,若第一组touchstart-touchend事件和第二组touchstart-touchend事件之间不存在scroll:window事件,且第二组touchstart-touchend事件中存在scroll:window事件,则确定所述点击事件的触发时机处于页面滚动的过程中;
当记录的触摸事件是区域页面滚动时,若第一组touchstart-touchend事件中不存在scroll:target事件,且第二组touchstart-touchend事件中或者第二组touchstart-touchend事件后存在scroll:target事件,则确定所述点击事件的触发时机处于页面滚动的过程中。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与前述移动终端点击事件的识别方法的实施例相对应,本说明书还提供一种移动终端点击事件的识别装置,该移动终端点击事件的识别装置包括:处理器以及用于存储机器可执行指令的存储器。其中,处理器和存储器通常借由内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与移动终端点击事件的识别逻辑对应的机器可执行指令,所述处理器被促使:
记录移动终端触摸屏幕检测到的触摸事件;
当点击事件被触发时,根据记录的所述触摸事件判断所述点击事件的触发时机是否处于页面滚动的过程中;
若所述点击事件的触发时机处于页面滚动的过程中,则取消所述点击事件。
可选的,通过读取并执行所述存储器存储的与移动终端点击事件的识别逻辑对应的机器可执行指令,所述处理器还被促使:
若所述点击事件的触发时机未处于页面滚动的过程中,则允许发出所述点击事件。
可选的,在记录移动终端触摸屏幕检测到的触摸事件时,所述处理器被促使:
当移动终端的浏览器控件是UIWebView控件时,记录移动终端触摸屏幕检测到的触摸事件。
可选的,在记录移动终端触摸屏幕检测到的触摸事件时,所述处理器被促使:
当检测到的触摸事件是指定类别的触摸事件时,对所述触摸事件进行事件名修改,并记录修改后的事件名和所述触摸事件对应的时间戳;
当检测到的触摸事件不是所述指定类别的触摸事件时,记录所述触摸事件的事件名和所述触摸事件对应的时间戳;
当记录下新的一组touchstart-touchend事件后,判断已记录的touchstart-touchend组数是否超过N;
若已记录的touchstart-touchend组数超过N,则根据时间戳删除最近N组touchstart-touchend事件之前记录的触摸事件,其中,N为大于等于1的自然数。
可选的,当所述指定类别的触摸事件是touchcancel事件时,所述对所述触摸事件进行事件名修改包括:将touchcancel事件的事件名修改为touchend;
当所述指定类别的触摸事件是scroll事件时,所述对所述触摸事件进行事件名修改包括:
根据scroll事件的属性信息判断所述scroll事件是全局页面滚动还是区域页面滚动;
当所述scroll事件是全局页面滚动时,将scroll事件的事件名修改为scroll:window;
当所述scroll事件是区域页面滚动时,将scroll事件的事件名修改为scroll:target。
可选的,当N等于2时,在根据记录的所述触摸事件判断所述点击事件的触发时机是否处于页面滚动的过程中,所述处理器被促使:
当记录的触摸事件是全局页面滚动时,若第一组touchstart-touchend事件和第二组touchstart-touchend事件之间不存在scroll:window事件,且第二组touchstart-touchend事件中存在scroll:window事件,则确定所述点击事件的触发时机处于页面滚动的过程中;
当记录的触摸事件是区域页面滚动时,若第一组touchstart-touchend事件中不存在scroll:target事件,且第二组touchstart-touchend事件中或者第二组touchstart-touchend事件后存在scroll:target事件,则确定所述点击事件的触发时机处于页面滚动的过程中。
与前述移动终端点击事件的识别方法的实施例相对应,本说明书还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现以下步骤:
记录移动终端触摸屏幕检测到的触摸事件;
当点击事件被触发时,根据记录的所述触摸事件判断所述点击事件的触发时机是否处于页面滚动的过程中;
若所述点击事件的触发时机处于页面滚动的过程中,则取消所述点击事件。
可选的,还包括:
若所述点击事件的触发时机未处于页面滚动的过程中,则允许发出所述点击事件。
可选的,所述记录移动终端触摸屏幕检测到的触摸事件,包括:
当移动终端的浏览器控件是UIWebView控件时,记录移动终端触摸屏幕检测到的触摸事件。
可选的,所述记录移动终端触摸屏幕检测到的触摸事件,包括:
当检测到的触摸事件是指定类别的触摸事件时,对所述触摸事件进行事件名修改,并记录修改后的事件名和所述触摸事件对应的时间戳;
当检测到的触摸事件不是所述指定类别的触摸事件时,记录所述触摸事件的事件名和所述触摸事件对应的时间戳;
当记录下新的一组touchstart-touchend事件后,判断已记录的touchstart-touchend组数是否超过N;
若已记录的touchstart-touchend组数超过N,则根据时间戳删除最近N组touchstart-touchend事件之前记录的触摸事件,其中,N为大于等于1的自然数。
可选的,当所述指定类别的触摸事件是touchcancel事件时,所述对所述触摸事件进行事件名修改包括:将touchcancel事件的事件名修改为touchend;
当所述指定类别的触摸事件是scroll事件时,所述对所述触摸事件进行事件名修改包括:
根据scroll事件的属性信息判断所述scroll事件是全局页面滚动还是区域页面滚动;
当所述scroll事件是全局页面滚动时,将scroll事件的事件名修改为scroll:window;
当所述scroll事件是区域页面滚动时,将scroll事件的事件名修改为scroll:target。
可选的,当N等于2时,所述根据记录的所述触摸事件判断所述点击事件的触发时机是否处于页面滚动的过程中,包括:
当记录的触摸事件是全局页面滚动时,若第一组touchstart-touchend事件和第二组touchstart-touchend事件之间不存在scroll:window事件,且第二组touchstart-touchend事件中存在scroll:window事件,则确定所述点击事件的触发时机处于页面滚动的过程中;
当记录的触摸事件是区域页面滚动时,若第一组touchstart-touchend事件中不存在scroll:target事件,且第二组touchstart-touchend事件中或者第二组touchstart-touchend事件后存在scroll:target事件,则确定所述点击事件的触发时机处于页面滚动的过程中。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。