发明内容
针对现有技术的上述缺陷,本发明为了解决现有技术无法直接由页面文本直接拨打分机的技术问题,提供了一种自动拨打页面中分机电话的方法及装置。
为实现上述目的,本发明采用如下技术方案:
一方面,本发明提供一种自动拨打页面中分机电话的方法,所述方法包括:
移动终端的浏览器在页面中存在可拨打的电话号码时,获取用户点击所述电话号码的操作;
提取所述点击的电话号码进行识别,在识别出所述电话号码中的分机号后,在所述分机号之前***延时拨打符号,将含有所述延时拨打符号的电话号码传入拨号界面;
在拨号界面中先拨打所述延时拨打符号前的主机号码,再根据所述延时拨打符号自动拨打所述延时拨打符号后的分机号。
优选地,在所述分机号之前***延时拨打符号之后及传入拨号界面之前,还包括,过滤所述电话号码中除所述延时拨打符号外的无关符号。
优选地,提取所述点击的电话号码进行识别包括:
在判断出所述电话号码中含有分隔符时,确定所述电话号码含有分机号,并确定所述分隔符后的号码为分机号。
优选地,所述确定所述分隔符后的号码为分机号包括:
当含有一个分隔符,且所述分隔符前的数字串为N位以上、所述分隔符后的数字串为N-1位以下时,则确定该分隔符后的为分机号,并且将该分隔符替换为所述延时拨打符号,***在所述分机号之前;
其中,所述N为所述电话号码所属城市的固定电话位数。
优选地,所述确定所述分隔符后的号码为分机号包括:
当含有一个分隔符以上,且最后的分隔符后的数字串为N-1位以下、最后的分隔符前的数字串为N位以上时,则确定该最后的分隔符后的为分机号,并且将该最后的分隔符替换为所述延时拨打符号,***在分机号之前;
其中,所述N为所述电话号码所属城市的固定电话位数。
优选地,提取所述点击的电话号码进行识别包括:
在判断出所述电话号码中不含有分隔符时,若所述电话号码末尾含有右括号,且最后一对括号内的数字串为N-1位以下、最后一对括号的左括号前的数字串为N位以上,则确定该最后一对括号内的为分机号,并且将该最后一对括号的左括号替换为所述延时拨打符号,***在分机号之前;
其中,所述N为所述电话号码所属城市的固定电话位数。
优选地,所述延时拨打符号为半角逗号“,”。
另一方面,本发明还同时提供一种自动拨打页面中分机电话的装置,所述装置包括:
点击获取模块,用于在当移动终端的浏览器在页面中存在可拨打的电话号码时,获取用户点击所述电话号码的操作;
识别模块,用于提取所述点击的电话号码进行识别,在识别出所述电话号码中的分机号后,在所述分机号前***延时拨打符号,将含有所述延时拨打符号的电话号码传入拨号界面;
自动拨打模块,用于在拨号界面中先拨打所述延时拨打符号前的主机号码,再根据所述延时拨打符号自动拨打所述延时拨打符号后的分机号。
优选地,所述装置还包括:
过滤模块,当所识别模块在所述分机号之前***延时拨打符号之后及传入拨号界面之前,所述过滤模块用于过滤所述电话号码中除所述延时拨打符号外的无关符号。
优选地,所述装置还包括:
分隔符处理模块,在所述识别模块提取所述点击的电话号码进行识别时,所述分隔符处理模块用于在判断出所述电话号码中含有分隔符时,确定所述电话号码含有分机号,并确定所述分隔符后的号码为分机号。
本发明的方案中,浏览器自动识别出页面电话中带有的分机号,通过在所述分机号之前***延时拨打符号,使得在进行电话拨打时可以自动在呼叫主机之后进行分机号的延时拨打,无需用户过多干预,即可实现一键自动拨打分机电话。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到电话分机拨打的特殊情况,本发明的技术方案首先对页面中的数字串进行识别,在识别出数字串中含有的分机号后,在所述分机号之前***延时拨打符号,那么随后在进行电话拨打时自动在呼叫主机之后,根据延时拨打符号,拨打该延时拨打符号后的分机号,这样,无需用户过多干预,即可实现一键自动拨打分机电话。
在本发明的实施例中,针对网页中可点击转入手机拨号界面的电话,通过对分机号书写规则的判断,识别出电话中带有的分机号;在用户点击拨打时,在主机电话与分机号中间***延时拨打符号并过滤其它符号,从而生成手机支持的分机号拨打格式填入拨号界面,实现让用户通过点击直接拨打网页电话中的分机号。
如图1所示,本发明方法包括步骤:
S1,移动终端的浏览器在页面中存在可拨打的电话号码时,获取用户点击所述电话号码的操作;
S2,提取所述点击的电话号码进行识别,在识别出所述电话号码中的分机号后,在所述分机号之前***延时拨打符号,将含有所述延时拨打符号的电话号码传入拨号界面;
S3,在拨号界面中先拨打所述延时拨打符号前的主机号码,再根据所述延时拨打符号自动拨打所述延时拨打符号后的分机号。
在本发明的实施例中,浏览器确定页面中是否存在可拨打的电话号码,响应于用户的点击进入拨号界面。在一个优选的实施例中,根据页面源码中的标签确定页面中的电话号码,在页面中显示为一个可点击的链接,随后响应于用户的点击,调用相关的函数启动手机的拨号界面。通常情况下,手机应用(如浏览器应用等)中显示的页面的源码中会对电话号码做特殊处理,比如在电话号码前采用“wtai://wp/mc”标签进行标识,其中wtai(Wireless TelephonyApplications Interface,无线电话应用程序接口)是专门为在WML(Wireless Markup Language,无线标记语言)中建立电话呼叫的函数,对电话号码进行处理后的源码的一个典型的示例如:<ahref="wtai://wp/mc:13800138000">13800138000</a>。
在本发明一个优选的实施例中,在用户点击后,并不直接将网页中的电话号码填入手机的拨号界面,而是先对网页中的电话号码是否带有分机号进行判断,如果有分机号,则在主机号与分机号之间***延时拨打符号,并过滤掉其它的无关符号,再填入拨号界面进行拨打;如果没有分机号,则只过滤掉其它无关符号,将电话号码填入拨号界面进行拨打。在更优选的实施例中,利用现有智能手机操作***(如Android、IOS、Windows Phone等)对电话拨号的支持,在主机号与分机号之间***的延时拨打符号为半角逗号“,”,这样手机在拨号时能将该符号处理为延时操作,在拨打该符号前的主机号码后停顿一段时间再继续拨打之后的分机号码,从而实现自动拨打分机号。
与本发明的方法相对应的,本发明还同时包括一种自动拨打页面中分机电话的装置,如图2所示,所述装置包括:
点击获取模块201,用于在当移动终端的浏览器在页面中存在可拨打的电话号码时,获取用户点击所述电话号码的操作;
识别模块202,用于提取所述点击的电话号码进行识别,在识别出所述电话号码中的分机号后,在所述分机号前***延时拨打符号,将含有所述延时拨打符号的电话号码传入拨号界面;
自动拨打模块203,用于在拨号界面中先拨打所述延时拨打符号前的主机号码,再根据所述延时拨打符号自动拨打所述延时拨打符号后的分机号。
更进一步地,所述装置还包括:过滤模块,当所识别模块在所述分机号之前***延时拨打符号之后及传入拨号界面之前,所述过滤模块用于过滤所述电话号码中除所述延时拨打符号外的无关符号。
此外,所述装置还可包括:分隔符处理模块,在所述识别模块提取所述点击的电话号码进行识别时,所述分隔符处理模块用于在判断出所述电话号码中含有分隔符时,确定所述电话号码含有分机号,并确定所述分隔符后的号码为分机号。
更具体地,通过图3和对应的几个实例来说明分机号的判断和处理的详细流程。本发明的方法中,在检测到用户点击拨打页面中含有数字的字符串表示的电话时,需要先判断全部字符串之间是否包含分隔标记;由于当前表示电话分隔的标记通常为分隔符“-”或括号,因而在图3的实施例中以判断这两类分隔标记为例进行介绍但不局限于此。本领域相关技术人员应能理解,对于其他符号形成的分隔标记,采用本发明的方法显然同样可以处理,这两类分隔标记仅仅是本发明的一种优选实施方式,不应理解为对本发明的限定。
具体地,参见图3,步骤S301首先判断字符串中是否包含分隔符“-”,如有则进行步骤S302,否则进行步骤S305;
S302,进一步判断字符串中是否仅包含一个分隔符,如是则进行步骤S303,否则进行步骤S308;
S303,判断分隔符前的连续数字串的长度是否在N位(比如7位)以上,如是则进行步骤S304,否则进行步骤S310;由于目前各地区电话号码均在7位以上,该步骤用于判断分隔符前的数字是否是一个有效的主机号码;需说明的是,有的城市的电话可能是8位以上,因此本发明根据城市的固定电话号码位数来设定自然数N,根据实际情况取值,如A城市固定电话号码位数是7位则N=7,B城市固定电话号码位数是8位则N=8。
S304,判断分隔符后的连续数字串的长度是否在N-1位(比如6位)以下,如是则分隔符后的为分机号,将分隔符替换为延时拨打符号(即半角逗号“,”)再进行步骤S310,否则直接进行步骤S310;本步骤用于判断分隔符后是否是分机号码,一般情况下分机号码多为3或4位数字,为与主机号码形成区别并尽可能包含特殊分机号码,这里以N-1位数作为判断标准;
S305,若步骤S301未发现分隔符,则有可能全部以括号作为分隔标记,此时进一步判断字符串末尾是否是右括号“)”,若是则进行步骤S306,否则进行步骤S310;
S306,判断最后一对括号内的连续数字串的长度是否在6位以下,如是则进行步骤S307,否则进行步骤S310;
S307,判断最后一对括号的左括号“(”前的连续数字串的长度是否在N位(比如7位)以上,如是则该最后一对括号内的为分机号,则将该左括号替换为延时拨打符号(即半角逗号“,”)再进行步骤S310,否则直接进行步骤S310;
S308,若步骤S302中发现字符串中有多个分隔符,则有可能字符串全部以分隔符作为分隔标记,此时判断最后一个分隔符后的连续数字串长度是否是N-1位(比如6位)以下,如是则进行步骤S309,否则进行步骤S310;
S309,进一步判断最后一个分隔符前的连续数字串长度是否在N位(比如7位)以上,如是则该最后一个分隔符后的为分机号,将最后一个分隔符替换为延时拨打符号(即半角逗号“,”)再进行步骤S310,否则直接进行步骤S310;
S310,过滤掉字符串中的无关符号,将处理后的字符串返回填入拨号界面进行拨号,先拨打延时拨打符号之前的主机号码,然后自动拨打延时拨打符号之后的分机号码。
这里无关符号主要指空格符、左右括号及分隔符等,过滤即直接将这些无关符号删除。
与上述方法相对应的,本发明的自动拨打页面中分机电话的装置中,分隔符处理模块可进一步包括:
单分隔符处理模块,用于当含有一个分隔符,且所述分隔符前的数字串为N位以上、所述分隔符后的数字串为N-1位以下时,确定该分隔符后的为分机号,并且将该分隔符替换为所述延时拨打符号,***在所述分机号之前。
以及,多分隔符处理模块,用于当含有一个分隔符以上,且最后的分隔符后的数字串为N-1位以下、最后的分隔符前的数字串为N位以上时,确定该最后的分隔符后的为分机号,并且将该最后的分隔符替换为所述延时拨打符号,***在分机号之前。
所述装置还可包括:括号处理模块,用于在判断出所述电话号码中不含有分隔符时,若所述电话号码末尾含有右括号,且最后一对括号内的数字串为N-1位以下、最后一对括号的左括号前的数字串为N位以上,确定该最后一对括号内的为分机号,并且将该最后一对括号的左括号替换为所述延时拨打符号,***在分机号之前。
其中,上述模块中的N为所述电话号码所属城市的固定电话位数。
下面用几个具体的电话号码示例来说明上述判断过程。
首先是带有分机号的情况:
例一,(020)66824888-8456
浏览器***检测到用户点击拨打该电话时,判断是否包含分隔符“-”;
有分隔符,进一步判断是否仅包含一个分隔符;
仅一个分隔符,判断分隔符前的连续数字串长度是否是7位(N=7为例)以上(如果分隔符后是分机号,那么分隔符前必定是主机号码,否则可直接确定分隔符后不是分机号,无需后续判断即可拨号。由于各地区的电话位数至少是7位,因此判断分隔符前的连续数字串是否大于或等于7即可);
分隔符前是主机号码,判断分隔符后的连续数字串长度是否是6位以下,即判断分隔符后是否是分机号码;
是分机号码,则将分隔符替换为半角逗号“,”;随后过滤左右括号“(”和“)”,将02066824888,8456传给***拨号接口,此时会将浏览器传过来的“02066824888,8456”显示到手机拨号界面中,用户点击拨号键,那么会先拨打主机号码02066824888,然后拨打半角逗号“,”之后的分机号码8456,即可直接拨打。
例二,+86-020-66824888-8456
判断是否包含分隔符“-”;
包含,判断是否仅包含一个分隔符;
不止一个分隔符,判断最后一个分隔符后的连续数字串长度是否是6位以下(因为分机号通常是在电话的最后,因此本步骤确定该电话是否含分机号,如不含则无需后续判断即可拨号);
是分机号,判断最后一个分隔符前的字符数是否大于或等于7(确定最后一个分隔符前的数字串是否为主机号码);
是主机号,将最后一个分隔符替换为半角逗号“,”,过滤“-”,将+8602066824888,8456传给***拨号接口,即可直接拨打。
例三:(020)66824888(8456)
判断是否包含分隔符“-”;
不含分隔符,判断电话的末尾是否包含右括号“)”;
含右括号,判断最后一对括号内的字符数是否小于或等于6(确定分机号);
是分机号,判断最后一对括号的左括号“(”前的连续数字串的长度是否大于或等于7(确定主机号);
是主机号,将最后一个左括号“(”替换为半角逗号“,”,过滤其余左右括号“(”和“)”,将02066824888,8456传给***拨号接口即可直接拨打。
对于不带分机号的情况:
例四:(020)66824888
检测到用户点击拨打该电话时,判断是否包含分隔符“-”;
不含分隔符,判断电话的末尾是否包含右括号“)”;
末尾不含“)”,则确定电话不带分机号,将字符串中的无关符号“(”和“)”过滤,将02066824888传给手机拨号接口,即可直接拨打。
例五:020-66824888
首先会判断该电话是否包含分隔符“-”;
含分隔符,判断该字符串中是否仅包含一个分隔符;
仅一个分隔符,判断分隔符前的数字串长度是否大于或等于7;
小于7位,则确定电话不带分机号,将字符串中的无关符号“-”过滤,然后将02066824888传给手机拨号接口,即可直接拨打。
例六:+86-020-66824888
首先会判断该电话是否包含分隔符“-”;
含分隔符,判断该字符串中是否仅包含一个分隔符;
不止一个分隔符,判断最后一个分隔符后的数字串长度是否小于或等于6;
多于6位,则确定电话不带分机号,将字符串中的无关符号“-”过滤,然后将+8602066824888传给手机拨号接口,即可直接拨打。
例七:135-803-50593
首先会判断该电话是否包含分隔符“-”;
含分隔符,判断该字符串中是否仅包含一个分隔符。
不止一个分隔符,判断最后一个分隔符后的数字串长度是否小于或等于6;
小于6位,判断最后一个分隔符前的字符数是否大于或等于7(确定最后一个分隔符前的数字串是否为主机号码);
不是主机号,则确定电话不是带分机号的电话,将字符串中的无关符号“-”过滤,将13580350593传给手机拨号接口,即可直接拨打。
本发明的方案中,通过对拨叫号码的判断和处理,可以自动识别出页面显示电话中带有的分机号,并在所述分机号之前***延时拨打符号,那么随后在进行电话拨打时自动在呼叫主机之后延时拨打分机号,无需用户过多干预,即可实现一键自动拨打页面中的分机电话。本发明显著提高了在移动终端中直接利用页面内容的效率,简化了用户的操作,增强了用户体验。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括上述实施例方法的各步骤,而所述的存储介质可以是:ROM/RAM、磁碟、光盘、存储卡等。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。