浏览器本地接口扩展方法及装置制造方法

文档序号:6630957阅读:154来源:国知局
浏览器本地接口扩展方法及装置制造方法
【专利摘要】本发明涉及一种浏览器本地接口扩展方法及装置,所述方法包括:利用JavaScript框架模块,对浏览器本地接口进行扩展和封装,得到扩展接口;调用JavaScript对象的实现方法,实现所述扩展接口,得到扩展JavaScript对象;Android注册实现模块注册所述JavaScript框架模块中扩展的JavaScript对象到浏览器内核,实现所述JavaScript对象的功能。本发明提供的浏览器本地接口扩展方法,实现了在Android系统中扩展浏览器本地复杂接口的功能,增加了Android系统对网页接口的支持,从而增强了Android系统对网页应用的兼容性。
【专利说明】浏览器本地接口扩展方法及装置

【技术领域】
[0001]本发明涉及计算机【技术领域】,尤其涉及一种浏览器本地接口扩展方法及装置。

【背景技术】
[0002]Android操作系统发展迅猛,应用场合涉及手机、PAD、机顶盒等多种终端。Android系统开放的业务模式,吸引了大量的应用开发者,设计了海量的精彩应用。同时,由于HTML5技术的日趋成熟,HTML5应用也日益受到越来越多人的关注。HTML5应用基于网页和浏览器运行,不受系统平台及设备的限制,不需要开发者针对不同操作系统分别开发。因此,为了在Android系统中更好地支持网页应用,需要扩展其对网页接口的支持,实现在Android系统中扩展浏览器本地接口。
[0003]传统的浏览器本地接口扩展方法,是通过修改Web引擎源码,从浏览器内核部分支持扩展的本地接口,实现与JavaScript的绑定。但这种方法需要获取平台源码,对平台依赖性很大。针对不同的操作系统,需要在不同的平台源码环境中进行重复编译开发,开发工作量大,维护困难。该扩展方法兼容性较差,实施难度大。另外一种针对Android系统的浏览器本地接口扩展方法,是使用标准的Android接口实现的浏览器本地简单接口的扩展。该方法接口形式单一,无法扩展复杂接口,无法满足网页开发对JavaScript接口的需求。
[0004]此外,Android系统本身版本众多,包括基础版本和各开发者修改的分支版本,各Android系统中的浏览器版本也很多,开发人员可以按照不同需求定制修改浏览器。因此,兼容性对于Android系统中浏览器本地接口尤为重要。


【发明内容】

[0005]本发明的目的是提供一种浏览器本地接口扩展方法及装置,利用JavaScript框架扩展浏览器本地接口,通过Android系统提供的标准接口,实现JavaScript接口的具体功能。
[0006]为实现上述目的,本发明提供了一种浏览器本地接口扩展方法,该方法包括:
[0007]利用JavaScript框架模块,对浏览器本地接口进行扩展和封装,得到扩展接口 ;
[0008]调用JavaScript对象的实现方法,实现所述扩展接口,得到扩展JavaScript对象;
[0009]Android注册实现模块注册所述JavaScript框架模块中扩展的JavaScript对象到浏览器内核,实现所述JavaScript对象的功能。
[0010]另一方面,本发明还提供了一种浏览器本地接口扩展装置,所述装置包括:
[0011]JavaScript框架模块,用于对浏览器本地接口进行扩展和封装,得到扩展接口 ;
[0012]调用JavaScript对象的实现方法,实现所述扩展接口,得到扩展JavaScript对象;
[0013]Android注册实现模块,用于注册所述JavaScript框架模块中扩展的JavaScript对象到浏览器内核,实现所述JavaScript对象的功能。
[0014]本发明提供的浏览器本地接口扩展方法及装置,利用JavaScript框架扩展浏览器本地接口,通过Android系统提供的标准接口,实现JavaScript接口的具体功能。不需要修改浏览器内核源码,减小了开发的工作量,而且可扩展复杂接口,从而提高了 Android系统对网页应用的兼容性。

【专利附图】

【附图说明】
[0015]图1为本发明实施例一提供的浏览器本地接口扩展方法示意图;
[0016]图2为本发明实施例一提供的浏览器本地接口扩展方法流程图;
[0017]图3为本发明实施例三提供的浏览器本地接口扩展装置示意图;
[0018]图4为本发明实施例四提供的本地页面回调函数扩展示意图。

【具体实施方式】
[0019]下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
[0020]实施例一
[0021]本实施例以扩展本地接口chrome, webstore.1nstall (string url, funct1nsuccessCallback, funct1n faiIureCallback)(以下简称 chrome, webstore.1nstall 接口)为例,该接口用于在Chrome应用商店中下载、安装某个Web应用。其中,参数url表明该Web应用安装包的下载地址;参数successCallback和failureCallback是下载成功或失败的回调函数,当Web应用下载安装成功时successCallback函数被调用,当Web应用下载安装失败时failureCallback函数被调用。
[0022]图1为本发明实施例一提供的浏览器本地接口扩展方法示意图。如图1所示,本系统包括JavaScript框架模块、Android注册实现模块。
[0023]其中,在JavaScript 框架模块中,编写 chromelnterface.js 文件,完成 chrome,webstore.1nstall接口定义,并调用Chromelnterface接口实现下载安装功能。
[0024]在浏览器安装包或采用浏览器内核实现的安装包中实现对ChromeInterface接口的定义和方法实现。采用Android标准接口 addjavascriptlnterface注册Chromelnterface接口到浏览器内核中。
[0025]对Chromelnterface接口的定义和方法实现可由JAVA部分代码单独完成,或采用JNI的方式调用C++部分功能接口,并将事件函数传递回JAVA部分,C++代码部分完成具体功能实现。
[0026]对浏览器本地接口的扩展,JavaScript对象和方法可以为多种复杂形式,如XXX.XXX、XXX.XXX.XXX 等。
[0027]所述JavaScript框架中对浏览器本地接口的扩展,可实现对页面回调函数的扩展支持。所述JavaScript框架中对浏览器本地接口的扩展,对页面回调函数进行唯一编号,以满足不同页面可能包含相同含义的回调函数并有可能同时存在的需求。
[0028]图2为本发明实施例一提供的浏览器本地接口扩展方法流程图,如图2所示,本发明的浏览器本地接口扩展方法,包括:
[0029]步骤101,利用JavaScript框架模块,对浏览器本地接口进行扩展和封装,得到扩展接口。
[0030]具体为,在JavaScript框架模块中,编写chromelnterface.js文件,定义chrome,webstore.1nstall 接口,得到扩展接口。
[0031]优选地,通过调用第一对象的接口方法,实现对浏览器本地接口的扩展和封装。所述第一对象在本实施例中具体为chromelnterface对象。
[0032]步骤102,调用JavaScript对象的实现方法,实现所述扩展接口,得到扩展JavaScript 对象。
[0033]具体为,调用Chromelnterface对象的接口方法,实现所述扩展接口,得到扩展JavaScript 对象。
[0034]步骤103, Android注册实现模块注册所述JavaScript框架模块中扩展的JavaScript对象到浏览器内核,实现所述JavaScript对象的功能。
[0035]具体为,在Android注册实现模块中,将所述JavaScript框架模块中扩展的JavaScript对象注册到浏览器内核,实现所述JavaScript对象的功能。
[0036]可选地,米用Android 标准接口 addjavascriptlnterface 注册 Chromelnterface接口到浏览器内核中。
[0037]本发明实施例提供的浏览器本地接口扩展方法,利用JavaScript框架扩展浏览器本地接口,通过Android系统提供的标准接口实现JavaScript接口与浏览器内核的绑定,并由Android本地应用实现JavaScript接口具体功能。不需要修改浏览器内核源码,减小了开发的工作量,而且可扩展复杂接口,从而提高了 Android系统对网页应用的兼容性。
[0038]实施例二
[0039]本实施例中JavaScript框架模块和Android系统模块之间传递的消息为字符串,具体组成如下:消息头、消息类型、回调函数ID、分隔符、数据类型、数据、结束符。各部分的长度和定义可自行约定。
[0040]本实施例中,消息的具体内容如下:
[0041]消息头为7个字节,为“CWrtMsg” ;
[0042]消息类型为I个字节,其中,“S”代表成功,“F”代表失败;
[0043]回调函数ID不定长,为chromelnterface.js文件中生成的唯一 ID ;
[0044]分隔符为I个字节,为“&” ;
[0045]数据类型为2个字节,其中,“EI”代表单个应用信息,“EA”代表应用数组信息,“ID”代表单个应用ID,“ST”代表字符串,“SA”代表字符串列表;
[0046]数据长度不定;
[0047]结束符为4个字节,为“TEND”。
[0048]实施例三
[0049]图3为本发明实施例三提供的浏览器本地接口扩展装置示意图。如图3所示,所述装置包括:JavaScript框架模块301和Android注册实现模块302。
[0050]JavaScript框架模块301,用于对浏览器本地接口进行扩展和封装,得到扩展接Π ;
[0051]调用JavaScript对象的实现方法,实现所述扩展接口,得到扩展JavaScript对象;
[0052]Android注册实现模块302,用于注册所述JavaScript框架模块中扩展的JavaScript对象到浏览器内核,实现所述JavaScript对象的功能。
[0053]本发明实施例三的浏览器本地接口扩展装置的模块可以实现本发明实施例一的浏览器本地接口扩展方法。本发明浏览器本地接口扩展装置各模块可以执行上述方法实施例中的各步骤。
[0054]本发明提供的浏览器本地接口扩展装置,利用JavaScript框架扩展浏览器本地接口,通过Android系统提供的标准接口实现JavaScript接口与浏览器内核的绑定,并由Android本地应用实现JavaScript接口具体功能。不需要修改浏览器内核源码,减小了开发的工作量,而且可扩展复杂接口,从而提高了 Android系统对网页应用的兼容性。
[0055]实施例四
[0056]本实施例中扩展的是安装接口 chrome, webstore.1nstall。图4为本发明实施例三提供的本地页面回调函数扩展示意图,如图4所示,包括如下步骤:
[0057]S401,在应用商城中,用户点击安装某个网页应用时,页面执行安装接口 chrome,webstore.1nstall。
[0058]S402,调用网页接口在 JavaScript 框架中的实现 chrome, webstore.1nstall。
[0059]S403,在JavaScript框架chromelnterface.js文件中,记录回调函数并编号为chrome, callbackld,将其存放于 chrome, callbacks [chrome, callbackld]中。
[0060]S404,调用具体实现 Chromelnterface 接口的 Chromelnterface.1nstall (url, chrome, callbackld.toStringO)方法。
[0061]其中,参数url表明该Web应用安装包的下载地址;参数chrome, callbackld.toString O为回调函数的唯一编号;
[0062]S405,在 Android 注册实现模块中,定义 Chromelnterface.1nstall 方法。
[0063]S406,在 Android 注册实现模块中,将 Chromelnterface 注册到 WebView 中。
[0064]S407,本实例中不仅由JAVA端完成JS对象的集体实现,而且通过JNI方式调用Chrome WRT 相关的安装接口 WRTCoreManagerment.1nstall。
[0065]S408, C++ 层 WRTCoreManagerment 类完成内部处理。
[0066]S409,将返回结果和回调函数编号按照一定的消息格式封装成字符串,通过socket客户端发送数据。
[0067]S410, JAVA端Chromelnterface类作为socket服务器接收数据,维护返回事件字符串列表。
[0068]S 411,页面调用另一个扩展的接口 Chromelnterface.getmessage,定期获取返回事件字符串。
[0069]S412,页面解析返回事件的字符串,根据回调函数编号找到相应回调函数,执行回调函数返回的数据,例如本例中安装网页应用成功或者失败的事件。
[0070]专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的对象及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0071]结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。
[0072]以上所述的【具体实施方式】,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的【具体实施方式】而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种浏览器本地接口扩展方法,其特征在于,该方法包括: 利用JavaScript框架模块,对浏览器本地接口进行扩展和封装,得到扩展接口 ; 调用JavaScript对象的实现方法,实现所述扩展接口,得到扩展JavaScript对象; Android注册实现模块注册所述JavaScript框架模块中扩展的JavaScript对象到浏览器内核,实现所述JavaScript对象的功能。
2.根据权利要求1所述的方法,其特征在于,所述对浏览器本地接口进行扩展和封装,具体为: 调用第一对象的接口方法,实现对浏览器本地接口的扩展和封装。
3.根据权利要求1所述的方法,其特征在于,所述Android注册实现模块注册所述JavaScript框架模块中扩展的JavaScript对象到浏览器内核,具体为: 所述Android注册实现模块通过Android标准接口,将所述扩展的JavaScript对象注册到所述浏览器内核中。
4.根据权利要求1所述的方法,其特征在于,所述利用JavaScript框架模块,对浏览器本地接口进行扩展和封装可实现对页面回调函数的扩展支持。
5.一种浏览器本地接口扩展装置,其特征在于,该装置包括: JavaScript框架模块,用于对浏览器本地接口进行扩展和封装,得到扩展接口 ; 调用JavaScript对象的实现方法,实现所述扩展接口,得到扩展JavaScript对象; Android注册实现模块,用于注册所述JavaScript框架模块中扩展的JavaScript对象到浏览器内核,实现所述JavaScript对象的功能。
6.根据权利要求5所述的装置,其特征在于,所述对浏览器本地接口进行扩展和封装,具体为: 调用第一对象的接口方法,实现对浏览器本地接口的扩展和封装。
7.根据权利要求5所述的装置,其特征在于,所述Android注册实现模块注册所述JavaScript框架模块中扩展的JavaScript对象到浏览器内核,具体为: 所述Android注册实现模块通过Android标准接口,将所述扩展的JavaScript对象注册到所述浏览器内核中。
8.根据权利要求5所述的装置,其特征在于,所述利用JavaScript框架模块,对浏览器本地接口进行扩展和封装可实现对页面回调函数的扩展支持。
【文档编号】G06F9/44GK104267972SQ201410559789
【公开日】2015年1月7日 申请日期:2014年10月20日 优先权日:2014年10月20日
【发明者】姜艳, 胡琳琳, 刘秀秀, 郭志川 申请人:中国科学院声学研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1