一种接口调用方法、装置及终端的制作方法
【技术领域】
[0001] 本发明设及计算机技术领域,尤其设及一种接口调用方法、装置及终端。
【背景技术】
[0002] 随着互联网技术的发展,浏览器已成为移动终端上必备的应用软件之一,通过移 动终端上的浏览器浏览网页时,浏览器内核对网页语法进行解释并擅染网页。通常,浏览器 内核提供了大量接口,客户端脚本可W调用该些接口,浏览器解释执行网页中加载的客户 端脚本,从而实现网页的动态展示效果,增强网页的交互性。
[0003] 目前,浏览器大多为多核浏览器,即浏览器中包括至少两个浏览器内核,然而,不 同的浏览器内核之间所提供的接口函数可能会存在差异。例如:不同的浏览器内核针对实 现相同功能的接口A所设计的接口函数的参数数目、参数的传递顺序不一样,或者是浏览 器中某一浏览器内核提供接口B,而另一浏览器内核不提供该接口B。同时,由于现有浏览 器中的扩展插件和网页都是基于某一特定的浏览器内核开发出来的,网页和扩展插件中的 客户端脚本也基于该特定的浏览器内核开发。因此,客户端脚本可W正常运行在该特定的 浏览器内核上。然而,若浏览器中当前运行的浏览器内核不是客户端脚本对应的特定浏览 器内核,且当前运行的浏览器内核与该特定浏览器内核,针对该客户端脚本需要调用的接 口存在上述差异时,网页或扩展插件将出现运行错误,导致浏览器的兼容性差。
【发明内容】
[0004] 本发明实施例提供一种接口调用方法、装置及终端,可W提升浏览器的兼容性。
[0005] 第一方面,本发明实施例提供一种接口调用方法,包括:
[0006] 接收接口调用指令,所述接口调用指令携带有加载客户端脚本需要调用的接口对 应的接口标识和参数;
[0007] 当浏览器中当前运行的浏览器内核不是所述客户端脚本对应的目标浏览器内核, 且所述当前运行的浏览器内核提供的与所述接口标识对应的第一接口函数和所述目标浏 览器内核提供的与所述接口标识对应的第二接口函数存在差异时,获取预设的所述接口标 识对应的所述当前运行的浏览器内核的目标接口函数,所述目标接口函数为根据所述目标 浏览器内核提供的所述第二接口函数进行预设的与所述当前运行的浏览器内核对应的第 S接口函数;
[000引将所述参数作为所述目标接口函数的输入参数,调用所述目标接口函数。
[0009] 在第一方面的第一种可能的实现方式中,所述客户端脚本为所述浏览器中的扩展 插件所包括的脚本程序;
[0010] 在所述接收接口调用指令之前,所述方法还包括:
[0011] 当检测到打开网页的触发事件时,将浏览器中需要加载的扩展插件对应的客户端 脚本插入待打开的网页中。
[0012] 结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式 中,所述扩展插件还包括在浏览器中加载的主程序;
[0013] 所述接收接口调用指令,所述接口调用指令携带有加载客户端脚本需要调用的接 口对应的接口标识和参数之前,所述方法还包括:
[0014] 接收到加载该扩展插件的触发指令时,启动新的进程加载所述主程序,所述新的 进程中加载有所述目标浏览器内核。
[0015] 结合第一方面,在第一方面的第=种可能的实现方式中,所述当浏览器中当前运 行的浏览器内核不是所述客户端脚本对应的目标浏览器内核,且所述当前运行的浏览器内 核提供的与所述接口标识对应的第一接口函数和所述目标浏览器内核提供的与所述接口 标识对应的第二接口函数存在差异时,获取预设的所述接口标识对应的所述当前运行的浏 览器内核的目标接口函数包括:
[0016] 当浏览器中当前运行的浏览器内核不是所述客户端脚本对应的目标浏览器内核, 且所述当前运行的浏览器内核提供的与所述接口标识对应的第一接口函数和所述目标浏 览器内核提供的与所述接口标识对应的第二接口函数存在差异时,根据所述接口标识,从 预设信息库中查询该接口标识对应所述当前运行的浏览器内核的接口函数;
[0017] 将所查询到的接口函数确定为目标接口函数。
[0018] 结合第一方面或第一方面的上述任意一种可能的实现方式,在第一方面的第四种 可能的实现方式中,所述将所述参数作为所述目标接口函数的输入参数,调用所述目标接 口函数之后,所述方法还包括:
[0019] 返回所述目标接口函数的调用结果。
[0020] 第二方面,本发明实施例提供一种接口调用装置,所述装置应用于浏览器中,包 括:
[0021] 接收模块,用于接收接口调用指令,所述接口调用指令携带有加载客户端脚本需 要调用的接口对应的接口标识和参数;
[0022] 确定模块,用于当浏览器中当前运行的浏览器内核不是所述客户端脚本对应的目 标浏览器内核,且所述当前运行的浏览器内核提供的与所述接口标识对应的第一接口函数 和所述目标浏览器内核提供的与所述接口标识对应的第二接口函数存在差异时,获取预设 的所述接口标识对应的所述当前运行的浏览器内核的目标接口函数,所述目标接口函数为 根据所述目标浏览器内核提供的所述第二接口函数进行预设的与所述当前运行的浏览器 内核对应的第=接口函数;
[0023] 调用模块,用于将所述参数作为所述目标接口函数的输入参数,调用所述目标接 口函数。
[0024] 在第二方面的第一种可能的实现方式中,所述客户端脚本为所述浏览器中的扩展 插件所包括的脚本程序,所述装置还包括:
[0025] 插入模块,用于当检测到打开网页的触发事件时,将浏览器中需要加载的扩展插 件对应的客户端脚本插入待打开的网页中。
[0026] 结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式 中,所述扩展插件还包括在浏览器中加载的主程序,所述装置还包括:
[0027] 启动模块,用于接收到加载该扩展插件的触发指令时,启动新的进程加载所述主 程序,所述新的进程中加载有所述目标浏览器内核。
[002引结合第二方面,在第二方面的第=种可能的实现方式中,所述确定模块具体用 于:
[0029] 当浏览器中当前运行的浏览器内核不是所述客户端脚本对应的目标浏览器内核, 且所述当前运行的浏览器内核提供的与所述接口标识对应的第一接口函数和所述目标浏 览器内核提供的与所述接口标识对应的第二接口函数存在差异时,根据所述接口标识,从 预设信息库中查询该接口标识对应所述当前运行的浏览器内核的接口函数;
[0030] 将所查询到的接口函数确定为目标接口函数。
[0031] 结合第二方面或第二方面的上述任意一种可能的实现方式,在第二方面的第四种 可能的实现方式中,所述装置还包括:
[0032] 返回模块,用于返回所述目标接口函数的调用结果。
[0033] 第=方面,本发明实施例提供一种终端,包括如上所述的任意一种接口调用装置。
[0034] 实施本发明实施例,接收接口调用指令,所述接口调用指令携带有加载客户端脚 本需要调用的接口对应的接口标识和参数;当浏览器中当前运行的浏览器内核不是所述客 户端脚本对应的目标浏览器内核,且所述当前运行的浏览器内核提供的与所述接口标识对 应的第一接口函数和所述目标浏览器内核提供的与所述接口标识对应的第二接口函数存 在差异时,获取预设的所述接口标识对应的所述当前运行的浏览器内核的目标接口函数; 将所述参数作为所述目标接口函数的输入参数,调用所述目标接口函数。采用本发明实施 例,根据浏览器中不同的浏览器内核针对某些接口提供的接口函数存在差异的情况,预先 设置可供替换的接口函数,因此,不管当前运行的浏览器内核是不是客户端脚本对应的目 标浏览器内核,浏览器均可W正常执行客户端脚本调用该部分存在差异的接口的请求,从 而避免客户端脚本因调用该部分存在差异的接口时而出现运行错误的情况,提升浏览器的 兼容性。
【附图说明】
[0035] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领 域普通技术人员来讲,在不付出创造性劳动的前提下,还可W根据该些附图获得其他的附 图。
[0036] 图1是本发明实施例提供的一种接口调用方法的流程示意图;
[0037] 图2是本发明实施例提供的一种接口调用方法的另一流程示意图;
[003引图3是本发明实施例提供的一种接口调用装置的结构示意图;
[0039] 图4是本发明实施例提供的一种接口调用装置的另一结构示意图;
[0040] 图5是本发明实施例提供的一种终端的结构示意图;
[0041] 图6是本发明实施例提供的一种接口调用装置的又一结构示意图。
【具体实施方式】
[0042] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0043] 本发明实施例提供了一种接口调用方法、装置及终端,接收接口调用指令,所述接 口调用指令携带有加载客户端脚本需要调用的接口对应的接口标识和参数;当浏览器中当 前运行的浏览器内核不是所述客户端脚本对应的目标浏览器内核,且所述当前运行的浏览 器内核和所述目标浏览器内核分别提供的该接口标识对应的接口函数存在差异时,确定该 接口标识对应的所述当前运行的浏览器内核的目标接口函数,所述目标接口函数为预设的 接口函数;将所述参数作为所述目标接口函数的输入参数,调用所述目标接口函数。采用本 发明实施例,根据浏览器中不同的浏览器内核针对某些接口提供的接口函数存在差异的情 况,预先设置可供替换的接口函数,因此,不管当前运行的浏览器内核
是不是客户端脚本对 应的目标浏览器内核,浏览器均可W正常执行客户端脚本调用该部分差异接口的请求,从 而,避免客户端脚本因调用该部分差异接口时而出现运行错误的情况,提升浏览器的兼容 性。下面将结合附图1-附图6对本发明实施例提供的一种接口调用方法、装置及终端分别 进行详细介绍。
[0044] 请参见图1,图1是本发明实施例提供的一种接口调用方法的流程示意图,在本发 明实施例中,该方法可W包括W下步骤。
[0045] S101 ;接收接口调用指令,所述接口调用指令携带有加载客户端脚本需要调用的 接口对应的接口标识和参数。
[0046] 在本发明实施例中,该方法可W用于终端上的浏览器或类似于浏览器的产品中, 所述终端可W是计算机、IPAD、手机等终端,也可W是其它智能设备,具体的,本发明实施例 不作任何限制。
[0047] 通常,为丰富网页的动态展示效果,增强网页与用户的交互性,浏览器向网页提供 了大量标准接口,供网页中加载的客户端脚本调用,浏览器解释、执行该客户端脚本。例如: 浏览器接收到客户端脚本的接口调用指令时,根据该接口调用指令携带的信息运行该信息 所指定的目标接口对应的接口函数,从而实现相应的功能。目前,常用的浏览器内核有: Trident内核、blink内核、Gecko内核等,然而,不同的浏览器内核之间所提供的接口函数 可能会存在差异,为方便描述,本发明实施例中将该部分存在差异的接口函数对应的接口 称为差异接口。例如:不同的浏览器内核针对实现相同功能的接口A所设计的接口函数的 参数数目、参数的传递顺序不一样,或者是某一浏览器内核提供接口B,而另一浏览器内核 不提供该接口B。由于现有浏览器中的扩展插件和网页都是基于某一特定的浏览器内核开 发出来的,网页和扩展插件中的客户端脚本也基于该特定的浏览器内核开发。因此,客户端 脚本可W正常运行在该特定的浏览器内核上,而当浏览器中当前运行的浏览器内核不是该 特定的浏览器内核时,可能会出现运行错误。
[0048] 为提高网页的运行效率,目前,浏览器大多为多核浏览器,即浏览器中包括至少两 个浏览器内核。为方便说明,本发明实施例W双核浏览器为例,当然,本发明可W应用于任 意浏览器,如单核浏览器、多核浏览器,具体的,本发明实施例不作限制。在加载网页的过程 中,接收接口调用指令,所述接口调用指令携带有加载客户端脚本需要调用的接口对应的 接口标识和参数。其中,所述接口标识可W是接口名称,也可W是与接口名称唯一对应的标 识符,具体的,本发明实施例不作限制。
[0049] S102;当浏览器中当前运行的浏览器内核不是所述客户端脚本对应的目标浏览器 内核,且所述当前运行的浏览器内核提供的与所述接口标识对应的第一接口函数和所述目 标浏览器内核提供的与所述接口标识对应的第二接口函数存在差异时,获取预设的所述接 口标识对应的所述当前运行的浏览器内核的目标接口函数,所述目标接口函数为根据所述 目标浏览器内核提供的所述第二接口函数进行预设的与所述当前运行的浏览器内核对应 的第S接口函数。
[0050] 本发明实施例中,根据浏览器中不同的浏览器内核针对某些接口提供的接口函数 存在差异的情况,预先设置供差异接口替换的接口函数。为方便说明,假设浏览器为双核浏 览器,分别为Trident内核和blink内核,可知,在Trident内核和blink内核分别提供的 接口中,针对实现相同功能的接口,若Trident内核和blink内核针对该接口提供的接口函 数的调用规范相同,则不管当前运行的浏览器内核是不是客户端脚本对应的目标浏览器内 核,浏览器均可W正常运行客户端脚本调用该接口的请求。若Trident内核和blink内核 提供的接口存在如下差异时;Trident内核和blink内核对实现相同功能所提供的接口函 数的调用规范不相同(如接口名称、参数数目、传递顺序不相同等),或者是某一内核提供 有实现某一功能的接口,另一内核未提供实现该功能的接口,在该些情况下,若客户端脚本 调用该部分差异接口,将出现运行错误。
[0化1] 本发明实施例针对现有方法中的该缺陷设计一种接口调用方法,即便浏览器中 当前运行的浏览器内核和客户端脚本对应的浏览器内核分别针对客户端脚本所要调用的 接口提供的接口函数存在差异,仍可正常加载该客户端脚本,从而,可W提升浏览器的兼容 性。为方便说明,假设浏览器为双核浏览器,分别为Trident内核和blink内核,客户端脚 本对应的目标浏览器内核为blink内核,当前运行的浏览器内核为Trident内核,在blink 内核和Trident内核分别提供的所有接口中,存在1个差异接口,用接口A表示。
[0化2]作为一种示例,假设blink内核针对接口A提供的接口函数为Inte计aceA,Trident内核针对接口A提供的接口函数为TridentInterhceA,则客户端脚本中调用接口 A(见代码1中Inte计aceA)的代码可W如代码1所示,而Trident内核针对接口A提供的 接口函数的调用规范可W如代码2所示。
[0化3]代码1 ;
[0054]
[005引代码2 ;
[0056] //Trident内核相同功能的接口
[0化7] //此接口接受=个参数,第一个参数为网址,第二个参数为次数,第=个参数为当 前时间
[0058]function TridentInterfaceA (url, count, date);
[0化9] 由代码1和代码2可预先获知blink内核和Trident内核针对接口A提供的接口 函数存在差异,其中,blink内核提供的接口函数Inte计aceA接收2个参数,第一个参数表 示次数,第二个参数表示网址;Trident内核提供的接口函数TridentInterhceA接收3个 参数,第一个参数表示网址,第二个参数表示次数,第立个参数表示当前时间。因此,若目标 浏览器内核为blink内核的客户端脚本按照blink内核提供的调用规范调用Trident内核 提供的接口,将出现运行错误。本发明实施例中,针对同一接口,不同的浏览器内核提供的 接口函数的调用规范不一致的情况,预先设置供替换的接口函数。具体的,根据其中一个浏 览器内核提供的接口函数,设置另一个浏览器内核的替换函数。例如:针对Trident内核 提供的接口函数TridentInterfaceA预先设置一个供替换的接口函数化keinte计aceA,其 中,供替换的接口函数化keinte计aceA可W是重新编写的接口函数,也可W是通过现有的 接口函数TridentlnterhceA处理后得到的接口函数。具体的,根据实际需要设定,本发明 实施例不作限制。作为一种示例,接口函数化keinte计aceA可W如代码3所示。
[0060] 代码 3
[0061]
[0062] 从而,浏览器在加载客户端脚本时,若该客户端脚本需要调用接口A,客户端脚本 对应的目标浏览器内核为blink内核,当前运行的浏览器内核为Trident内核,则运行预先 设置的接口函数化keinte计aceA。
[0063] 作为另一种示例,假设blink内核针对接口A提供的接口函数为Inte计aceA, Trident内核未提供接口A,即Trident内核未提供有实现接口A对应的功能的接口函数, 客户端脚本调用接口A(见代码1中Inte计aceA)的代码可W如代码1所示。本发明实 施例中,若对于某一接口,一个浏览器内核提供该接口,即该内核提供有实现该接口对应 的功能的接口函数;而另一个浏览器内核未提供该接口函数,则根据上述内核提供有实现 该接口对应的功能的接口函数,针对另一个浏览器内核预先设置目标接口函数,所述目标 接口函数需要实现的功能与上述内核提供有实现该接口对应的功能的接口函数需要实现 的功能相同,且调用规范也相同。具体实现中,目标接口函数可W是现有的接口函数的组 合(例如;如代码4所示),也可W是重新编写的接口函数(例如;如代码5所示),具体 的,可根据实际情况进行选取,本发明实施例不作限制。作为一种示例,假设目标接口函 数F'akeIntei'faceB可W通过组合Trident内核中现有的接 口函数(TridentInte;rfaceBl, TridentInterfaceB2 和TridentInterfaceB3)来实现接 口函数Inte;rfaceA需要实现的功 能,则通过组合该几个接口,可W实现和blink内核提供的接口A-样的功能。例如:目标 接口函数化keinte计aceB可W如代码4所示。
[0064]代码 4 ;
[00化]
[0066] 从而,浏览器在加载客户端脚本时,若该客户端脚本需要调用接口A,客户端脚本 对应的目标浏览器内核为blink内核,当前运行的浏览器内核为Trident内核,则运行预先 设置的接口函数化keinte计aceB。
[0067] 作为另一种示例,假设无法通过组合Trident内核中现有的接口函数来实 现接口A需要实现的功能,则预先为Trident内核设置一个实现该功能的接口函数 TridentInterfaceC。从而,预设的目标接口函数F'akeIntei'faceC可W如代码5所示。
[0068] 代码 5
[0069]
[0070] 从而,浏览器在加载客户端脚本时,若该客户端脚本需要调用接口A,客户端脚本 对应的目标浏览器内核为blink内核,当前运行的浏览器内核为Trident内核,则运行预先 设置的目标接口函数化keinte计aceC。
[0071] S103 ;将所述参数作为所述目标接口函数的输入参数,调用所述目标接口函数。
[0072] 由步骤S102确定出目标接口函数后,将接口调用指令中携带的参数作为该目标 接口函数的输入参数,调用所述目标接口函数。换句话说,将接口调用指令中携带的参数代 入目标接口函数中,运行或执行该
目标接口函数。从而,通过预先对不同的浏览器内核所提 供的接口进行规范化处理,提升浏览器的兼容性。
[0073] 在本发明实施例描述的接口调用方法中,接收接口调用指令,所述接口调用指令 携带有加载客户端脚本需要调用的接口对应的接口标识和参数;当浏览器中当前运行的浏 览器内核不是所述客户端脚本对应的目标浏览器内核,且所述当前运行的浏览器内核提供 的与所述接口标识对应的第一接口函数和所述目标浏览器内核提供的与所述接口标识对 应的第二接口函数存在差异时,获取预设的所述接口标识对应的所述当前运行的浏览器内 核的目标接口函数;将所述参数作为所述目标接口函数的输入参数,调用所述目标接口函 数。采用本发明实施例,根据浏览器中不同的浏览器内核针对某些接口提供的接口函数存 在差异的情况,预先设置可供替换的接口函数,因此,不管当前运行的浏览器内核是不是客 户端脚本对应的目标浏览器内核,浏览器均可W正常执行客户端脚本调用该部分差异接口 的请求,从而,避免客户端脚本因调用该部分差异接口时而出现运行错误的情况,提升浏览 器的兼容性。
[0074] 请参见图2,图2是本发明实施例提供的一种接口调用方法的另一流程示意图,在 本发明实施例中,该方法可W包括W下步骤。
[0075] S201 ;接收到加载扩展插件的触发指令时,启动新的进程加载所述主程序,所述新 的进程中加载有所述目标浏览器内核。
[0076] 由于浏览器内核提供了强大的接口,开发人员能够基于该些接口开发出各式各样 的扩展插件,比如:自动代理、密码保险箱、广告过滤等插件,该些扩展插件不仅能够实现新 的功能,而且还能更改当前网页的展现方式。通常,扩展插件包括在浏览器中加载的主程序 和/或在网页中加载的脚本程序,具体实现过程中,扩展插件与浏览器内核相关联。例如: 基于blink内核开发出来的扩展插件只能正常运行在blink内核中,基于Fire化X内核开 发出来的扩展插件只能正常运行在Fire化X内核中。因此,在多核浏览器中,若安装了一个 基于blink内核的扩展插件,则该插件只能正常运行在基于blink内核打开的网页中,而在 不是基于blink内核(如Trident内核)打开的网页中运行时可能会出现运行错误。
[0077]通常,浏览器在运行过程中至少包括主进程,当然,还可W包括擅染进程,若包含 有擅染进程,则网页内容的擅染工作在擅染进程中进行,若不包含擅染进程,则网页内容的 擅染工作在主进程中进行。本发明实施例中,若扩展插件包括在浏览器中加载的主程序,贝U 接收到加载扩展插件的触发指令时,启动新的进程加载所述主程序,所述新的进程中加载 有所述目标浏览器内核。
[007引例如;假设浏览器为双核浏览器,分别为Trident内核和blink内核,扩展插件对 应的目标浏览器内核为Trident内核,则可W在启动浏览器时自动加载该扩展插件,也可 W是浏览器启动成功后手动加载该扩展插件。当浏览器接收到加载扩展插件的触发指令 时,自动创建一个新页面,针对该页面启动一个加载有Trident内核的擅染进程,并在擅染 进程中运行该扩展插件对应的主程序。从而,不管浏览器当前运行的浏览器内核是不是该 扩展插件中的主程序对应的目标浏览器内核,该主程序均可W正常运行在浏览器中。
[0079] S202;当检测到打开网页的触发事件时,将浏览器中需要加载的扩展插件对应的 客户端脚本插入待打开的网页中。
[0080] 若扩展插件包括在网页中加载的脚本程序,则在浏览器中加载该扩展插件时,需 要将该扩展插件对应的脚本程序插入至打开的网页中,从而,通过加载该网页的方式加载 扩展插件中对应的脚本程序。本发明实施例中,当检测到打开网页的触发事件时(例如:该 触发时间可W是启动浏览器或新建标签页的触发事件等),将浏览器中需要加载的扩展插 件对应的客户端脚本插入待打开的网页中。
[0081] 例如;假设该扩展插件为具备翻译功能的插件,则该插件包括在浏览器中加载的 主程序和在网页中加载的脚本程序。接收到加载该扩展插件的触发指令时,启动新的进程 加载所述主程序,其中,该新的进程中加载有所述扩展插件对应的目标浏览器内核。并在检 测到打开网页的触发事件时,将该扩展插件对应的客户端脚本插入待打开的网页中。从而, 通过加载在网页中的客户端脚本获取网页上需要进行翻译的文字信息,并将所获取到的文 字信息作为需要调用的接口参数发送给加载在浏览器中主程序,主程序通过网络向服务器 获取该文字信息的翻译信息,最终将所获得的翻译信息显示至网页。
[0082] S203;接收接口调用指令,所述接口调用指令携带有加载客户端脚本需要调用的 接口对应的接口标识和参数。
[0083] 在加载网页的过程中,接收接口调用指令,所述接口调用指令携带有加载客户端 脚本需要调用的接口对应的接口标识和参数。其中,所述接口标识可W是接口名称,也可W 是与接口名称唯一对应的标识符,具体的,本发明实施例不作限制。
[0084] S204;当浏览器中当前运行的浏览器内核不是所述客户端脚本对应的目标浏览 器内核,且所述当前运行的浏览器内核提供的与所述接口标识对应的第一接口函数和所述 目标浏览器内核提供的与所述接口标识对应的第二接口函数存在差异时,根据所述接口标 识,从预设信息库中查询该接口标识对应所述当前运行的浏览器内核的接口函数。
[0085] 在一种实现方式中,根据浏览器中不同的浏览器内核针对接口提供的接口函数存 在差异的情况,预先设置供该些存在差异的接口替换的接口函数,并将该预先设置的接口 函数和对应的接口标识保存在预设信息库中,从而,根据接口调用指令所携带的接口标识 即可获知所要调用的接口在不同的浏览器内核中所提供的接口函数是否存在差异。当接收 到接口调用指令时,获取浏览器中当前运行的浏览器内核的类型,为方便描述,将浏览器中 当前运行的浏览器内核称为第一浏览器内核;根据客户端脚本对应的目标浏览器内核的类 型,识别第一浏览器内核的类型是否与目标浏览器内核的类型一致诺不一致,根据该接口 调用指令携带的接口标识识别所要调用的接口在第一浏览器内核中提供的接口函数是否 与在目标浏览器内核中提供的接口函数存在差异;若是,根据所述接口标识,从预设信息库 中查询该接口标识对应所述当前运行的浏览器内核的接口函数。
[0086] S205 ;将所查询到的接口函数确定为目标接口函数。
[0087] S206 ;将所述参数作为所述目标接口函数的输入参数,调用所述目标接口函数。
[008引 由步骤S205确定出目标接口函数后,将接口调用指令中携带的参数作为该目标 接口函数的输入参数,调用所述目标接口函数。换句话说,将接口调用指令中携带的参数代 入目标接口函数中,运行或执行该目标接口函数。从而,通过预先对不同的浏览器内核所提 供的接口进行规范化处理,提升浏览器的兼容性。
[0089] S206 ;返回所述目标接口函数的调用结果。
[0090] 获取调用所述目标接口函数后的输出参数,将该输出参数作为调用结果,向客户 端脚本返回所述目标接口函数的调用结果,W便客户端脚本采用该调用结果继续执行后续 操作。
[0091] 在本发明实施例描述的接口调用方法中,接收接口调用指令,所述接口调用指令 携带有加载客户端脚本需要调用的接口对应的接口标识和参数;当浏览器中当前运行的浏 览器内核不是所述客户端脚本对应的目标浏览器内核,且所述当前运行的浏览器内核提供 的与所述接口标识对应的第一接口函数和所述目标浏览器内核提供的与所述接口标识对 应的第二接口函数存在差异时,获取预设的所述接口标识对应的所述当前运行的浏览器内 核的目标接口函数;将所述参数作为所述目标接口函数的输入参数,调用所述目标接口函 数。采用本发明实施例,根据浏览器中不同的浏览器内核针对某些接口提供的接口函数存 在差异的情况,预先设置可供替换的接口函数,因此,不管当前运行的浏览器内核是不是客 户端脚本对应的目标浏览器内核,浏览器均可W正常执行客户端脚本调用该部分差异接口 的请求,从而,避免客户端脚本因调用该部分差异接口时而出现运行错误的情况,提升浏览 器的兼容性。
[0092] 下面为本发明装置实施例,本发明装置实施例与本发明方法实施例属于同一构 思,用于执行本发明方法实施例中描述的方法。为了便于说明,本发明装置实施例仅示出与 本发明装置实施例相关的部分,具体技术细节未揭示的,请参照本发明方法实施例的描述, 此处不再一一寶述。
[0093] 请参见图3,图3是本发明实施例提供的一种接口调用装置的结构示意图,在本发 明实施例中,该装置可W应用于浏览器中,包括:接收模块101、确定模块102和调用模块 103。
[0094] 接收模块101,用于接收接口调用指令,所述接口调用指令携带有加载客户端脚本 需要调用的接口对应的接口标识和参数。
[0095] 确定模块102,用于当浏览器中当前运行的浏览器内核不是所述客户端脚本对应 的目标浏览器内核,且所述当前运行的浏览器内核提供的与所述接口标识对应的第一接口 函数和所述目标浏览器内核提供的与所述接口标识对应的第二接口函数存在差异时,获取 预设的所述接口标识对应的所述当前运行的浏览器内核的目标接口函数,所述目标接口函 数为根据所述目标浏览器内核提供的所述第二接口函数进行预设的与所述当前运行的浏 览器内核对应的第=接口函数。
[0096] 调用模块103,用于将所述参数作为所述目标接口函数的输入参数,调用所述目标 接口函数。
[0097] 在本发明实施例描述的接口调用装置中,接收接口调用指令,所述接口调用指令 携带有加载客户端脚本需要调用的接口对应的接口标识和参数;当浏览器中当前运行的浏 览器内核不是所述客户端脚本对应的目标浏览器内核,且所述当前运行的浏览器内核和所 述目标浏览器内核分别提供的该接口标识对应的接口函数存在差异时,确定该接口标识对 应的所述当前运行的浏览器内核的目标接口函数,所述目标接口
函数为预设的接口函数; 将所述参数作为所述目标接口函数的输入参数,调用所述目标接口函数。采用本发明实施 例,根据浏览器中不同的浏览器内核针对某些接口提供的接口函数存在差异的情况,预先 设置可供替换的接口函数,因此,不管当前运行的浏览器内核是不是客户端脚本对应的目 标浏览器内核,浏览器均可W正常执行客户端脚本调用该部分差异接口的请求,从而,避免 客户端脚本因调用该部分差异接口时而出现运行错误的情况,提升浏览器的兼容性。
[009引请参见图4,图4是本发明实施例提供的一种接口调用装置的另一结构示意图,在 本发明实施例中,该装置可W包括;接收模块201、确定模块202、调用模块203、插入模块 204、启动模块205和返回模块206。
[0099] 接收模块201,用于接收接口调用指令,所述接口调用指令携带有加载客户端脚本 需要调用的接口对应的接口标识和参数。
[0100] 确定模块202,用于当浏览器中当前运行的浏览器内核不是所述客户端脚本对应 的目标浏览器内核,且所述当前运行的浏览器内核提供的与所述接口标识对应的第一接口 函数和所述目标浏览器内核提供的与所述接口标识对应的第二接口函数存在差异时,获取 预设的所述接口标识对应的所述当前运行的浏览器内核的目标接口函数,所述目标接口函 数为根据所述目标浏览器内核提供的所述第二接口函数进行预设的与所述当前运行的浏 览器内核对应的第=接口函数。
[0101] 调用模块203,用于将所述参数作为所述目标接口函数的输入参数,调用所述目标 接口函数。
[0102] 在一种实施例中,所述客户端脚本为所述浏览器中的扩展插件所包括的脚本程 序,插入模块204,用于当检测到打开网页的触发事件时,将浏览器中需要加载的扩展插件 对应的客户端脚本插入待打开的网页中。
[0103] 在一种实施例中,所述扩展插件还包括在浏览器中加载的主程序,启动模块205, 用于接收到加载该扩展插件的触发指令时,启动新的进程加载所述主程序,所述新的进程 中加载有所述目标浏览器内核。
[0104] 返回模块206,用于返回所述目标接口函数的调用结果。
[01化]在一种实施例中,确定模块202具体用于:
[0106] 当浏览器中当前运行的浏览器内核不是所述客户端脚本对应的目标浏览器内核, 且所述当前运行的浏览器内核提供的与所述接口标识对应的第一接口函数和所述目标浏 览器内核提供的与所述接口标识对应的第二接口函数存在差异时,根据所述接口标识,从 预设信息库中查询该接口标识对应所述当前运行的浏览器内核的接口函数;
[0107] 将所查询到的接口函数确定为目标接口函数。
[010引在本发明实施例描述的接口调用装置中,接收接口调用指令,所述接口调用指令 携带有加载客户端脚本需要调用的接口对应的接口标识和参数;当浏览器中当前运行的浏 览器内核不是所述客户端脚本对应的目标浏览器内核,且所述当前运行的浏览器内核提供 的与所述接口标识对应的第一接口函数和所述目标浏览器内核提供的与所述接口标识对 应的第二接口函数存在差异时,获取预设的所述接口标识对应的所述当前运行的浏览器内 核的目标接口函数;将所述参数作为所述目标接口函数的输入参数,调用所述目标接口函 数。采用本发明实施例,根据浏览器中不同的浏览器内核针对某些接口提供的接口函数存 在差异的情况,预先设置可供替换的接口函数,因此,不管当前运行的浏览器内核是不是客 户端脚本对应的目标浏览器内核,浏览器均可W正常执行客户端脚本调用该部分差异接口 的请求,从而,避免客户端脚本因调用该部分差异接口时而出现运行错误的情况,提升浏览 器的兼容性。
[0109] 请参见图5,图5是本发明实施例提供的一种终端的结构示意图,在本发明实施例 中,终端10包括如上所述的接口调用装置。在本发明实施例中,所述终端可W包括;智能手 机、电脑、平板电脑、笔记本电脑、掌上电脑W及移动互联网设备(MID)、PAD等终端设备。具 体的,本发明实施例不作限制。
[0110] 值得说明的是,终端10包括如上所述的任意一种接口调用装置,该终端接收接口 调用指令,所述接口调用指令携带有加载客户端脚本需要调用的接口对应的接口标识和参 数;当浏览器中当前运行的浏览器内核不是所述客户端脚本对应的目标浏览器内核,且所 述当前运行的浏览器内核提供的与所述接口标识对应的第一接口函数和所述目标浏览器 内核提供的与所述接口标识对应的第二接口函数存在差异时,获取预设的所述接口标识对 应的所述当前运行的浏览器内核的目标接口函数;将所述参数作为所述目标接口函数的输 入参数,调用所述目标接口函数。采用本发明实施例,根据浏览器中不同的浏览器内核针对 某些接口提供的接口函数存在差异的情况,预先设置可供替换的接口函数,因此,不管当前 运行的浏览器内核是不是客户端脚本对应的目标浏览器内核,浏览器均可W正常执行客户 端脚本调用该部分差异接口的请求,从而,避免客户端脚本因调用该部分差异接口时而出 现运行错误的情况,提升浏览器的兼容性。
[0111] 请参见图6,图6是本发明实施例提供的一种接口调用装置的又一结构示意图, 用于执行本发明实施例公开的接口调用方法,该装置可W包括;至少一个处理器301,例如 CPU,至少一个网络接口 304或者其他用户接口 303,存储器305,至少一个通信总线302。通 信总线302用于实现该些组件之间的连接通信。其中,用户接口 303可选的可W包括USB接 口W及其他标准接口、有线接口。网络接口 304可选的可W包括Wi-Fi接口W及其他无线接 口。存储器305可能包含高速RAM存储器,也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器305可选的可W包含至少一个位于远离前述处 理器301的存储装置。如图6所示,作为一种计算机存储介质的存储器305中可W包括操 作系统3051及应用程序3052。
[0112] 在一些实施方式中,存储器305存储了如下的元素,可执行模块或者数据结构,或 者他们的子集,或者他们的扩展集:
[0113] 操作系统3051,包含各种系统程序,用于实现各种基础业务W及处理基于硬件的 任务;
[0114] 应用程序3052,包含目标网络数据的数据分块参数的设置程序、目标数据块的划 分程序、目标数据块与数据库中的数据块的比较程序W及目标数据块的删除程序等各种应 用程序,用于实现各种应用业务。
[0115] 具体地,处理器301用于调用存储器305中存储的程序,执行W下操作:
[0116] 接收接口调用指令,所述接口调用指令携带有加载客户端脚本需要调用的接口对 应的接口标识和参数;
[0117] 当浏览器中当前运行的浏览器内核不是所述客户端脚本对应的目标浏览器内核, 且所述当前运行的浏览器内核提供的与所述接口标识对应的第一接口函数和所述目标浏 览器内核提供的与所述接口标识对应的第二接口函数存在差异时,获取预设的所述接口标 识对应的所述当前运行的浏览器内核的目标接口函数,所述目标接口函数为根据所述目标 浏览器内核提供的所述第二接口函数进行预设的与所述当前运行的浏览器内核对应的第 S接口函数;
[011引将所述参数作为所述目标接口函数的输入参数,调用所述目标接口函数。
[0119] 在另一种实施例中,所述客户端脚本为所述浏览器中的扩展插件所包括的脚本程 序,处理器301执行所述接收接口调用指令,所述接口调用指令携带有加载客户端脚本需 要调用的接口对应的接口标识和参数的操作之前,还执行W下操作:
[0120] 当检测到打开网页的触发事件时,将浏览器中需要加载的扩展插件对应的客户端 脚本插入待打开的网页中。
[0121] 在另一种实施例中,所述扩展插件还包括在浏览器中加载的主程序,处理器301 执行所述接收接口调用指令,所述接口调用指令携带有加载客户端脚本需要调用的接口对 应的接口标识和参数的操作之前,还执行W下操作:
[0122] 接收到加载该扩展插件的触发指令时,启动新的进程加载所述主程序,所述新的 进程中加载有所述目标浏览器内核。
[0123] 在另一种实施例中,处理器301执行所述当浏览器中当前运行的浏览器内核不是 所述客户端脚本对应的目标浏览器内核,且所述当前运行的浏览器内核提供的与所述接口 标识对应的第一接口函数和所述目标浏览器内核提供的与所述接口标识对应的第二接口 函数存在差异时,获取预设的所述接口标识对应的所述当前运行的浏览器内核的目标接口 函数的操作,包括执行W下操作:
[0124] 当浏览器中当前运行的浏览器内核不是所述客户端脚本对应的目标浏览器内核, 且所述当前运行的浏览器内核提供的与所述接口标识对应的第一接口函数和所述目标浏 览器内核提供的与所述接口标识对应的第二接口函数存在差异时,根据所述接口标识,从 预设信息库中查询该接口标识对应所述当前运行的浏览器内核的接口函数;
[0125] 将所查询到的接口函数确定为目标接口函数。
[01%] 在另一种实施例中,处理器301执行所述将所述参数作为所述目标接口函数的输 入参数,调用所述目标接口函数的操作之后,还包括执行W下操作:
[0127] 返回所述目标接口函数的调用结果。
[0128] 在本发明实施例描述的技术方案中,接收接口调用指令,所述接口调用指令携带 有加载客户端脚本需要调用的接口对应的接口标识和参数;当浏览器中当前运行的浏览器 内核不是所述客户端脚本对应的目标浏览器内核,且所述当前运行的浏览器内核提供的与 所述接口标识对应的第一接口函数和所述目标浏览器内核提供的与所述接口标识对应的 第二接口函数存在差异时,获取预设的所述接口标识对应的所述当前运行的浏览器内核的 目标接口函数;将所述参数作为所述目标接口函数的输入参数,调用所述目标接口函数。 采用本发明实施例,根据浏览器中不同的浏览器内核针对某些接口提供的接
口函数存在差 异的情况,预先设置可供替换的接口函数,因此,不管当前运行的浏览器内核是不是客户端 脚本对应的目标浏览器内核,浏览器均可W正常执行客户端脚本调用该部分差异接口的请 求,从而,避免客户端脚本因调用该部分差异接口时而出现运行错误的情况,提升浏览器的 兼容性。
[0129] 在本说明书的描述中,参考术语"一个实施例"、"一些实施例"、"示例"、"具体示 例"、或"一些示例"等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特 点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不 一定是必须针对相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可W在 任一个或多个实施例或示例中W合适的方式结合。此外,在不相互矛盾的情况下,本领域的 技术人员可W将本说明书中描述的不同实施例或示例W及不同实施例或示例的特征进行 结合和组合。
[0130] 本领域的技术人员可W将本说明书中描述的不同实施例W及不同实施例的特 征进行结合和组合。本发明所有实施例中的模块或单元,可W通过通用集成电路,例 如CPU(Central Processing Unit,中央处理器),或通过ASIC(Application Specific Integrated Cir州it,专用集成电路)来实现。
[0131] 本发明所有实施例方法中的步骤可W根据实际需要进行顺序调整、合并和删减; 本发明所有实施例装置中的模块或单元可W根据实际需要进行合并、划分和删减。
[0132] 流程图中或在此W其他方式描述的任何过程或方法描述可W被理解为,表示包括 一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部 分,并且本发明的优选实施方式的范围包括另外的实现,其中可W不按所示出或讨论的顺 序,包括根据所设及的功能按基本同时的方式或按相反的顺序,来执行功能,该应被本发明 的实施例所属技术领域的技术人员所理解。
[0133] 在流程图中表示或在此W其他方式描述的逻辑和/或步骤,例如,可W被认为是 用于实现逻辑功能的可执行指令的定序列表,可W具体实现在任何计算机可读介质中,W 供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可W从指 令执行系统、装置或设备取指令并执行指令的系统)使用,或结合该些指令执行系统、装置 或设备而使用。就本说明书而言,"计算机可读介质"可W是任何可W包含、存储、通信、传 播或传输程序W供指令执行系统、装置或设备或结合该些指令执行系统、装置或设备而使 用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括W下:具有一个或多个 布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读 存储器(ROM),可擦除可编辑只读存储器巧PROM或闪速存储器),光纤装置,W及便携式光 盘只读存储器(CDR0M)。另外,计算机可读介质甚至可W是可在其上打印所述程序的纸或其 他合适的介质,因为可W例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必 要时W其他合适方式进行处理来W电子方式获得所述程序,然后将其存储在计算机存储器 中。
[0134] 本技术领域的普通技术人员可W理解实现上述实施例方法携带的全部或部分步 骤是可W通过程序来指令相关的硬件完成,所述的程序可W存储于一种计算机可读存储介 质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0135] 此外,在本发明各个实施例中的各功能单元可W集成在一个处理模块中,也可W 是各个单元单独物理存在,也可W两个或两个W上单元集成在一个模块中。上述集成的模 块既可W采用硬件的形式实现,也可W采用软件功能模块的形式实现。所述集成的模块如 果W软件功能模块的形式实现并作为独立的产品销售或使用时,也可W存储在一个计算机 可读取存储介质中。
[0136] 上述提到的存储介质可W是只读存储器,磁盘或光盘等。尽管上面已经示出和描 述了本发明的实施例,可W理解的是,上述实施例是示例性的,不能理解为对本发明的限 审IJ,本领域的普通技术人员在本发明的范围内可W对上述实施例进行变化、修改、替换和变 型。
[0137] W上所揭露的仅为本发明的较佳实施例而已,当然不能W此来限定本发明之权利 范围,本领域普通技术人员可W理解实现上述实施例的全部或部分流程,并依本发明权利 要求所作的等同变化,仍属于发明所涵盖的范围。
【主权项】
1. 一种接口调用方法,其特征在于,包括: 接收接口调用指令,所述接口调用指令携带有加载客户端脚本需要调用的接口对应的 接口标识和参数; 当浏览器中当前运行的浏览器内核不是所述客户端脚本对应的目标浏览器内核,且所 述当前运行的浏览器内核提供的与所述接口标识对应的第一接口函数和所述目标浏览器 内核提供的与所述接口标识对应的第二接口函数存在差异时,获取预设的所述接口标识对 应的所述当前运行的浏览器内核的目标接口函数,所述目标接口函数为根据所述目标浏览 器内核提供的所述第二接口函数进行预设的与所述当前运行的浏览器内核对应的第三接 口函数; 将所述参数作为所述目标接口函数的输入参数,调用所述目标接口函数。2. 如权利要求1所述的方法,其特征在于,所述客户端脚本为所述浏览器中的扩展插 件所包括的脚本程序; 在所述接收接口调用指令之前,所述方法还包括: 当检测到打开网页的触发事件时,将浏览器中需要加载的扩展插件对应的客户端脚本 插入待打开的网页中。3. 如权利要求2所述的方法,其特征在于,所述扩展插件还包括在浏览器中加载的主 程序; 所述接收接口调用指令,所述接口调用指令携带有加载客户端脚本需要调用的接口对 应的接口标识和参数之前,所述方法还包括: 接收到加载该扩展插件的触发指令时,启动新的进程加载所述主程序,所述新的进程 中加载有所述目标浏览器内核。4. 如权利要求1所述的方法,其特征在于,所述当浏览器中当前运行的浏览器内核不 是所述客户端脚本对应的目标浏览器内核,且所述当前运行的浏览器内核提供的与所述接 口标识对应的第一接口函数和所述目标浏览器内核提供的与所述接口标识对应的第二接 口函数存在差异时,获取预设的所述接口标识对应的所述当前运行的浏览器内核的目标接 口函数包括: 当浏览器中当前运行的浏览器内核不是所述客户端脚本对应的目标浏览器内核,且所 述当前运行的浏览器内核提供的与所述接口标识对应的第一接口函数和所述目标浏览器 内核提供的与所述接口标识对应的第二接口函数存在差异时,根据所述接口标识,从预设 信息库中查询该接口标识对应所述当前运行的浏览器内核的接口函数; 将所查询到的接口函数确定为目标接口函数。5. 如权利要求1-4任一项所述的方法,其特征在于,所述将所述参数作为所述目标接 口函数的输入参数,调用所述目标接口函数之后,所述方法还包括: 返回所述目标接口函数的调用结果。6. -种接口调用装置,所述装置应用于浏览器中,其特征在于,包括: 接收模块,用于接收接口调用指令,所述接口调用指令携带有加载客户端脚本需要调 用的接口对应的接口标识和参数; 确定模块,用于当浏览器中当前运行的浏览器内核不是所述客户端脚本对应的目标浏 览器内核,且所述当前运行的浏览器内核提供的与所述接口标识对应的第一接口函数和所 述目标浏览器内核提供的与所述接口标识对应的第二接口函数存在差异时,获取预设的所 述接口标识对应的所述当前运行的浏览器内核的目标接口函数,所述目标接口函数为根据 所述目标浏览器内核提供的所述第二接口函数进行预设的与所述当前运行的浏览器内核 对应的第三接口函数; 调用模块,用于将所述参数作为所述目标接口函数的输入参数,调用所述目标接口函 数。7. 如权利要求6所述的装置,其特征在于,所述客户端脚本为所述浏览器中的扩展插 件所包括的脚本程序,所述装置还包括: 插入模块,用于当检测到打开网页的触发事件时,将浏览器中需要加载的扩展插件对 应的客户端脚本插入待打开的网页中。8. 如权利要求7所述的装置,其特征在于,所述扩展插件还包括在浏览器中加载的主 程序,所述装置还包括: 启动模块,用于接收到加载该扩展插件的触发指令时,启动新的进程加载所述主程序, 所述新的进程中加载有所述目标浏览器内核。9. 如权利要求6所述的装置,其特征在于,所述确定模块具体用于: 当浏览器中当前运行的浏览器内核不是所述客户端脚本对应的目标浏览器内核,且所 述当前运行的浏览器内核提供的与所述接口标识对应的第一接口函数和所述目标浏览器 内核提供的与所述接口标识对应的第二接口函数存在差异时,根据所述接口标识,从预设 信息库中查询该接口标识对应所述当前运行的浏览器内核的接口函数; 将所查询到的接口函数确定为目标接口函数。10. 如权利要求6-9任一项所述的装置,其特征在于,所述装置还包括: 返回模块,用于返回所述目标接口函数的调用结果。11. 一种终端,其特征在于,包括如权利要求6-10任一项所述的接口调用装置。
【专利摘要】本发明实施例公开了一种接口调用方法,包括:接收接口调用指令,所述接口调用指令携带有加载客户端脚本需要调用的接口对应的接口标识和参数;当浏览器中当前运行的浏览器内核不是所述客户端脚本对应的目标浏览器内核,且所述当前运行的浏览器内核提供的与所述接口标识对应的第一接口函数和所述目标浏览器内核提供的与所述接口标识对应的第二接口函数存在差异时,获取预设的所述接口标识对应的所述当前运行的浏览器内核的目标接口函数;将所述参数作为所述目标接口函数的输入参数,调用所述目标接口函数。本发明实施例还公开了一种接口调用装置及终端。采用本发明实施例,可以提升浏览器的兼容性。
【IPC分类】G06F9/46, G06F9/445
【公开号】CN104881318
【申请号】CN201510229507
【发明人】王哲
【申请人】北京金山安全软件有限公司
【公开日】2015年9月2日
【申请日】2015年5月7日
转载请注明原文地址:https://www.famiwei.com/read-8138757.html