一种网页程序触发本地操作的方法和装置制造方法

文档序号:7988007阅读:185来源:国知局
一种网页程序触发本地操作的方法和装置制造方法
【专利摘要】本发明公开了一种网页程序触发本地操作的方法和装置,属于互联网【技术领域】。所述方法包括:网页程序中设置有包含连接本地程序的HTTP链接的JavaScript代码;所述本地程序接收浏览器在执行所述JavaScript代码的过程中根据所述JavaScri?pt代码中的所述HTTP链接发送的地址访问请求,所述地址访问请求中携带有所述JavaScript代码中记录的本地操作标识;所述本地程序根据所述本地操作标识,在所述本地设备中执行相应的本地操作。采用本发明,可以提高网页程序触发本地操作的过程的通用性。
【专利说明】一种网页程序触发本地操作的方法和装置
【技术领域】
[0001]本发明涉及互联网【技术领域】,特别涉及一种网页程序触发本地操作的方法和装置。
【背景技术】
[0002]随着浏览器技术的不断发展,网页程序能够实现越来越多终端本地程序(或称桌面程序)能够实现的功能,如数据管理、文档编辑等。然而,网页程序对数据的管理和对文档的编辑等操作都是在网络侧的服务器中实现的,基于网络安全的考虑,网页程序并没有进行本地操作(对设备的本地软硬件资源进行相关操作)的权限,网页程序既不能向本地发送数据(或消息),也不能从本地读取数据。
[0003]针对该问题,现有技术中提出了浏览器插件技术,可以在终端为浏览器程序安装相应的插件,例如IE(Internet Explorer,互联网浏览器)中应用的ActiveX(—个开放式的创建程序集成和内容的集成平台)插件,浏览器提供相应的API (Application Programming Interface,应用程序编程接口)与插件进行交互。当网页程序需要触发本地操作时,可以通过浏览器调用相应的API,通过向插件发送本地操作请求,并由插件根据本地操作请求完成相应的操作(如运行某本地应用程序等)。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005]现有技术中,不同内核的浏览器(如IE、Firef0X (火狐)浏览器等)所提供的API是不同的,所以,通过插件触发本地操作的方式通用性差,对于相同的功能,需要针对不同的浏览器开发不同的插件,需要对不同的插件进行加载,造成资源浪费。

【发明内容】

[0006]为了解决现有技术的问题,本发明实施例提供了一种网页程序触发本地操作的方法和装置,以提高网页程序触发本地操作的过程的通用性。所述技术方案如下:
[0007]—方面,提供了一种网页程序触发本地操作的方法,网页程序中设置有包含连接本地程序的HTTP链接的JavaScript代码,所述方法包括:
[0008]所述本地程序接收浏览器在执行所述JavaScript代码的过程中根据所述JavaScript代码中的所述HTTP链接发送的地址访问请求,所述地址访问请求中携带有所述JavaScript代码中记录的本地操作标识;
[0009]所述本地程序根据所述本地操作标识,在所述本地设备中执行相应的本地操作。
[0010]优选的,所述本地操作标识具体为所述HTTP链接中的路径标识;
[0011]所述本地程序中记录有路径标识与本地操作的对应关系;
[0012]所述本地程序根据所述本地操作标识,在所述本地设备中执行相应的本地操作,具体为:所述本地程序根据记录的路径标识与本地操作的对应关系,确定所述地址访问请求中的路径标识对应的本地操作;所述本地程序在所述本地设备中执行该本地操作。
[0013]优选的,所述方法还包括:[0014]所述本地程序向所述浏览器发送JavaScript代码形式的答复消息,所述答复消息中携带有所述本地操作的执行结果。
[0015]优选的,所述本地程序向所述浏览器发送JavaScript代码形式的答复消息之后,还包括:
[0016]所述浏览器获取所述答复消息中携带的所述本地操作的执行结果;
[0017]所述浏览器对所述执行结果进行显示。
[0018]优选的,所述HTTP链接中的域名具体为本机域名,所述HTTP链接中的端口号具体为本地设备中系统分配给所述本地程序的端口号。
[0019]优选的,所述地址访问请求中还携带有所述JavaScript代码中记录的密钥;
[0020]所述本地程序根据所述本地操作标识,在所述本地设备中执行相应的本地操作,具体为:所述本地程序将所述地址访问请求中携带的密钥与所述本地程序中存储的密钥进行对比,如果匹配,则根据所述本地操作标识,在所述本地设备中执行相应的本地操作。
[0021]另一方面,提供了一种网页程序触发本地操作的装置,网页程序中设置有包含连接本地程序的HTTP链接的JavaScript代码,所述装置包括:
[0022]接收模块,用于接收浏览器在执行所述JavaScript代码的过程中根据所述JavaScript代码中的所述HTTP链接发送的地址访问请求,所述地址访问请求中携带有所述JavaScript代码中记录的本地操作标识;
[0023]执行模块,用于根据所述本地操作标识,在所述本地设备中执行相应的本地操作。
[0024]优选的,所述本地操作标识具体为所述HTTP链接中的路径标识;
[0025]所述执行模块中记录有路径标识与本地操作的对应关系;
[0026]所述执行模块,具体用于:根据记录的路径标识与本地操作的对应关系,确定所述地址访问请求中的路径标识对应的本地操作;在所述本地设备中执行该本地操作。
[0027]优选的,所述执行模块,还用于:
[0028]向所述浏览器发送JavaScript代码形式的答复消息,所述答复消息中携带有所述本地操作的执行结果。
[0029]优选的,所述HTTP链接中的域名具体为本机域名,所述HTTP链接中的端口号具体为本地设备中系统分配给所述本地程序的端口号。
[0030]优选的,所述地址访问请求中还携带有所述JavaScript代码中记录的密钥;
[0031]所述执行模块,具体用于:将所述地址访问请求中携带的密钥与所述本地程序中存储的密钥进行对比,如果匹配,则根据所述本地操作标识,在所述本地设备中执行相应的本地操作。
[0032]本发明实施例提供的技术方案带来的有益效果是:
[0033]本发明实施例中,浏览器在执行网页程序的JavaScript代码时,通过HTTP (HyperText Transport Protocol,超文本传输协议)方式向本地程序发送地址访问请求,并通过地址访问请求中的本地操作标识指示本地程序执行相应的本地操作。因为,不同内核的浏览器通过HTTP方式向本地程序发送地址访问请求,是没有区别的,所以,此方法可以提高网页程序触发本地操作的过程的通用性。
【专利附图】

【附图说明】[0034]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]图1是本发明实施例提供的网页程序触发本地操作的方法流程图;
[0036]图2是本发明实施例提供的网页程序触发本地操作的装置结构示意图。
【具体实施方式】
[0037]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0038]实施例一
[0039]本发明实施例提供了一种网页程序触发本地操作的方法。在该方法中,网页程序中设置有包含连接本地程序的HTTP链接的JavaScript (—种基于对象和事件驱动并具有相对安全性的客户端脚本语言)代码。如图1所示,该方法的处理流程可以具体包括如下步骤:
[0040]步骤101,本地程序接收浏览器在执行上述JavaScript代码的过程中根据该JavaScript代码中的该HTTP链接发送的地址访问请求。其中,该地址访问请求中携带有该JavaScript代码中记录的本地操作标识。
[0041]步骤102,本地程序根据接收到的本地操作标识,在本地设备中执行相应的本地操作。
[0042]本发明实施例中,浏览器在执行网页程序的JavaScript代码时,通过HTTP方式向本地程序发送地址访问请求,并通过地址访问请求中的本地操作标识指示本地程序执行相应的本地操作。因为,不同内核的浏览器通过HTTP方式向本地程序发送地址访问请求,是没有区别的,所以,此方法可以提高网页程序触发本地操作的过程的通用性。
[0043]实施例二
[0044]本发明实施例提供了一种网页程序触发本地操作的方法。在该方法中,网页程序中设置有包含连接本地程序的HTTP链接的JavaScript代码。
[0045]其中,本地程序可以具体为本地服务器程序,本地设备运行该本地服务器程序,建立本地服务器。本地程序可以预先安装到该本地设备中(如随系统配套安装),在系统启动时、或浏览器启动时、或打开相应的网页时启动该本地程序。除了上述的安装方式,还可以在浏览器执行网页程序时检测本地设备中是否已经安装该本地程序,如果没有安装,则通过浏览器弹出请求的方式,请求用户进行安装。
[0046]在本发明实施例中,网页程序中包含的连接本地程序的HTTP链接的JavaScript代码,是用于触发本地操作的JavaScript代码,该JavaScript代码中还包含有要触发的本地操作的本地操作标识。一般的,网页程序中可以包含HTM L(Hyper Text MarkupLanguage,超文本标记语言)代码和JavaScript代码,HTM L代码可以用于静态的网页渲染,例如,图片显示、按钮位置设置和按钮图标的显示等,JavaScript代码可以用于动态功能的实现,例如,判断用户在网页中输入的字符是否符合要求。在网页程序中可以包含多段实现不同功能的JavaScript代码。[0047]其中,本发明实施例提供的用于触发某个本地操作的JavaScript代码中,可以包含有连接本地程序的HTTP链接。具体的,在该JavaScript代码中包含一个通过HTTP方式连接本地程序的语句,其中HTTP链接即为该本地程序的URL (Uniform/Universal ResourceLocator,统一资源定位符),该URL中的域名可以为1calhost (本机域名),URL中的端口号可以是本地设备中系统分配给该本地程序的端口号。如果本地设备注册有外网域名,URL中的域名也可以是此外网域名。
[0048]下面将结合具体的实施方式,对图1所示的流程进行详细阐述,具体内容如下。
[0049]步骤101,本地程序接收浏览器在执行上述JavaScript代码的过程中根据该JavaScript代码中的该HTTP链接发送的地址访问请求。其中,该地址访问请求中携带有该JavaScript代码中记录的本地操作标识。
[0050]具体的,浏览器可以在检测到相应的代码执行指令时,执行该JavaScript代码,该代码执行指令可以是操作指令(如用户点击网页按钮发出的指令),也可以是在加载网页程序的过程中网页程序直接发出的指令。
[0051]具体的,浏览器向本地程序发送地址访问请求的过程可以是:浏览器在执行JavaScript代码中相应的语句时,读取其中的URL,例如该URL可以是http: //1calhost:50001/drivercheck。浏览器获取该U RL的域名和端口号,然后生成地址访问请求,地址访问请求报文的报头中的目的地址可以由该域名对应的IP(Internet Protocol,互联网协议)地址和端口号组成,本机域名1calhost对应的IP地址为127.0.0.1,假设端口号为50001,那该地址访问请求的目的地址为127.0.0.1:50001。这样,该地址访问请求将通过本地设备中系统的该端口发送。又因为该JavaScript代码中的该HTTP链接的域名为本机域名,端口号为本地设备中系统分配给本地程序的端口号,所以,该地址访问请求将被发送给本地程序。
[0052]一般的,浏览器在生成地址访问请求时,会在地址访问请求中携带请求访问的路径标识,该路径标识获取自HTTP链接,用于标识访问的内容的具体存储路径。在HTTP链接中,对于携带参数的情况,端口号后的“/”和携带参数标识“?”之间的字符即为请求访问的路径标识,例如,某 U RL 为 http: //1calhost: 50001/drivercheck?token=iuxFx\px [a,该URL的路径标识则为d rivercheck ;对于不携带参数的情况,端口号后的“/”之后的字符则为请求访问的路径标识,例如,某URL为http://localhost:50001/drivercheck,该URL的路径标识则为drivercheck。对于HTTP链接中携带参数(通过“?token=”的形式)的情况,在地址访问请求中还会携带相应的参数。
[0053]浏览器可以通过该地址访问请求,携带相应的本地操作标识,以指导本地程序进行相应的本地操作,从而可以实现网页程序对本地操作的触发。
[0054]步骤102,本地程序根据接收到的本地操作标识,在本地设备中执行相应的本地操作。在本地程序中可以针对不同的本地操作标识,记录具体的执行方式,从而执行相应的本地操作。
[0055]优选的,步骤101中的本地操作标识可以是HTTP链接中的路径标识,而且,在本地程序中可以记录路径标识与本地操作的对应关系,这时,步骤102的具体执行方式可以是:本地程序根据记录的路径标识与本地操作的对应关系,确定地址访问请求中的路径标识对应的本地操作;本地程序在本地设备中执行该本地操作。[0056]具体的,本地程序中可以建立路径标识和本地操作的对应关系表,该路径标识可以只是一个逻辑标识,而并不存在相对应的实际路径,本地程序对于地址访问请求可以不进行常规的实际路径的访问处理,而是根据地址访问请求中的路径标识,在上述对应关系表中,查找到对应的本地操作,然后执行该本地操作。
[0057]对于网页程序的提供方,在进行上述JavaScript代码的编辑之前,可以预先获取上述本地程序中记录的路径标识与本地操作的对应关系(即网页程序的提供方应该是预先已知该对应关系的),然后当编辑用于触发某本地操作的JavaScript代码时,可以根据该对应关系确定该本地操作对应的路径标识,作为JavaScript代码中的HTTP链接中的路径标识。
[0058]另外,出于安全性的考虑,可以要求在用于触发本地操作的JavaScri pt代码中记录预先约定好的密钥,以防止非法网页程序进行本地操作。浏览器在发送地址访问请求时,可以在地址访问请求中携带JavaScript代码中记录的密钥。这样,本地程序可以将地址访问请求中携带的密钥与本地程序中存储的密钥进行对比,如果匹配,则根据本地操作标识,在本地设备中执行相应的本地操作。如果不匹配,则可以拒绝在本地设备中执行相应的本地操作。优选的,在JavaScript代码中,密钥可以在HTTP链接中以参数的形式记录,这样,浏览器在发送地址访问请求时,就会将密钥以参数的形式携带于地址访问请求中。
[0059]在执行完上述步骤102之后,如果执行的本地操作需要向浏览器返回执行结果,那还可以包括如下的步骤:本地程序向浏览器发送JavaScript代码形式的答复消息,该答复消息中携带有上述执行的本地操作的执行结果。例如,该执行结果可以是本地操作执行成功,也可以是本地操作执行失败,还可以是本地操作获取的数据等。
[0060]基于HTTP协议,JavaScript代码是不允许进行跨域数据获取的,即JavaScript代码只能在提供其所属的网页程序的网站的域名下获取数据,而不能在其它域名下获取数据。而在本发明实施例中,本地程序和提供网页程序的网站具有不同的域名,浏览器如果要接收本地程序发送的数据,实际是属于跨域数据获取行为,是会被浏览器拒绝的。所以,本发明实施例提供了上述发送执行结果的方式,将数据的发送转换为某段JavaScript代码的发送,这样数据的获取过程就转换成为某段JavaScript代码的加载过程。在HTTP协议中,跨域的JavaScript代码加载是允许进行的,所以通过上述方法可以实现本地操作执行结果的反馈。
[0061]此携带执行结果的JavaScript代码的具体内容参数可以根据具体情况预先设置,并在本地程序中与本地操作对应的记录。
[0062]另外,浏览器在接收到本地程序反馈的JavaScript代码形式的答复消息之后,可以获取答复消息中携带的所述本地操作的执行结果,然后对所述执行结果进行显示。
[0063]本发明实施例中,浏览器在执行网页程序的JavaScript代码时,通过HTTP方式向本地程序发送地址访问请求,并通过地址访问请求中的本地操作标识指示本地程序执行相应的本地操作。因为,不同内核的浏览器通过HTTP方式向本地程序发送地址访问请求,是没有区别的,所以,此方法可以提高网页程序触发本地操作的过程的通用性。
[0064]实施例三
[0065]基于相同的技术构思,本发明实施例提供了一种网页程序触发本地操作的装置,该装置的功能可以通过本地程序来实现。网页程序中设置有包含连接本地程序的HTTP链接的JavaScript代码,如图2所示,所述装置包括:
[0066]接收模块210,用于接收浏览器在执行所述JavaScript代码的过程中根据所述JavaScript代码中的所述HTTP链接发送的地址访问请求,所述地址访问请求中携带有所述JavaScript代码中记录的本地操作标识;
[0067]执行模块220,用于根据所述本地操作标识,在所述本地设备中执行相应的本地操作。
[0068]优选的,所述本地操作标识具体为所述HTTP链接中的路径标识;
[0069]所述执行模块220中记录有路径标识与本地操作的对应关系;
[0070]所述执行模块220,具体用于:根据记录的路径标识与本地操作的对应关系,确定所述地址访问请求中的路径标识对应的本地操作;在所述本地设备中执行该本地操作。
[0071]优选的,所述执行模块220,还用于:
[0072]向所述浏览器发送JavaScript代码形式的答复消息,所述答复消息中携带有所述本地操作的执行结果。
[0073]优选的,所述HTTP链接中的域名具体为本机域名,所述HTTP链接中的端口号具体为本地设备中系统分配给所述本地程序的端口号。
[0074]优选的,所述地址访问请求中还携带有所述JavaScript代码中记录的密钥;
[0075]所述执行模块220,具体用于:将所述地址访问请求中携带的密钥与所述本地程序中存储的密钥进行对比,如果匹配,则根据所述本地操作标识,在所述本地设备中执行相应的本地操作。
[0076]本发明实施例中,浏览器在执行网页程序的JavaScript代码时,通过HTTP方式向本地程序发送地址访问请求,并通过地址访问请求中的本地操作标识指示本地程序执行相应的本地操作。因为,不同内核的浏览器通过HTTP方式向本地程序发送地址访问请求,是没有区别的,所以,此方法可以提高网页程序触发本地操作的过程的通用性。
[0077]需要说明的是:上述实施例提供的网页程序触发本地操作的装置在触发本地操作时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的网页程序触发本地操作的装置与网页程序触发本地操作的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0078]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0079]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0080]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种网页程序触发本地操作的方法,其特征在于,网页程序中设置有包含连接本地程序的HTTP链接的JavaScript代码,所述方法包括: 所述本地程序接收浏览器在执行所述JavaScript代码的过程中根据所述JavaScript代码中的所述HTTP链接发送的地址访问请求,所述地址访问请求中携带有所述JavaScript代码中记录的本地操作标识; 所述本地程序根据所述本地操作标识,在所述本地设备中执行相应的本地操作。
2.根据权利要求1所述的方法,其特征在于,所述本地操作标识具体为所述HTTP链接中的路径标识; 所述本地程序中记录有路径标识与本地操作的对应关系; 所述本地程序根据所述本地操作标识,在所述本地设备中执行相应的本地操作,具体为:所述本地程序根据记录的路径标识与本地操作的对应关系,确定所述地址访问请求中的路径标识对应的本地操作;所述本地程序在所述本地设备中执行该本地操作。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括: 所述本地程序向所述浏览器发送JavaScript代码形式的答复消息,所述答复消息中携带有所述本地操作的执行结果。
4.根据权利要求3所述的方法,其特征在于,所述本地程序向所述浏览器发送JavaScript代码形式的答复消息之后,还包括: 所述浏览器获取所述答复消息中携带的所述本地操作的执行结果; 所述浏览器对所述执行结果进行显示。
5.根据权利要求1所述的方法,其特征在于,所述HTTP链接中的域名具体为本机域名,所述HTTP链接中的端口号具体为本地设备中系统分配给所述本地程序的端口号。
6.根据权利要求1所述的方法,其特征在于,所述地址访问请求中还携带有所述JavaScript代码中记录的密钥; 所述本地程序根据所述本地操作标识,在所述本地设备中执行相应的本地操作,具体为:所述本地程序将所述地址访问请求中携带的密钥与所述本地程序中存储的密钥进行对比,如果匹配,则根据所述本地操作标识,在所述本地设备中执行相应的本地操作。
7.—种网页程序触发本地操作的装置,其特征在于,网页程序中设置有包含连接本地程序的HTTP链接的JavaScript代码,所述装置包括: 接收模块,用于接收浏览器在执行所述JavaScript代码的过程中根据所述JavaScript代码中的所述HTTP链接发送的地址访问请求,所述地址访问请求中携带有所述JavaScript代码中记录的本地操作标识; 执行模块,用于根据所述本地操作标识,在所述本地设备中执行相应的本地操作。
8.根据权利要求7所述的装置,其特征在于,所述本地操作标识具体为所述HTTP链接中的路径标识; 所述执行模块中记录有路径标识与本地操作的对应关系; 所述执行模块,具体用于:根据记录的路径标识与本地操作的对应关系,确定所述地址访问请求中的路径标识对应的本地操作;在所述本地设备中执行该本地操作。
9.根据权利要求7所述的装置,其特征在于,所述执行模块,还用于: 向所述浏览器发送JavaScript代码形式的答复消息,所述答复消息中携带有所述本地操作的执行结果。
10.根据权利要求7所述的装置,其特征在于,所述HTTP链接中的域名具体为本机域名,所述HTTP链接中的端口号具体为本地设备中系统分配给所述本地程序的端口号。
11.根据权利要求7所述的装置,其特征在于,所述地址访问请求中还携带有所述JavaScript代码中记录的密钥; 所述执行模块,具体用于:将所述地址访问请求中携带的密钥与所述本地程序中存储的密钥进行对比,如果匹配 ,则根据所述本地操作标识,在所述本地设备中执行相应的本地操作。
【文档编号】H04L29/08GK103902534SQ201210568093
【公开日】2014年7月2日 申请日期:2012年12月24日 优先权日:2012年12月24日
【发明者】刘昊 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1