CN104267972A - 浏览器本地接口扩展方法及装置 - Google Patents
浏览器本地接口扩展方法及装置 Download PDFInfo
- Publication number
- CN104267972A CN104267972A CN201410559789.4A CN201410559789A CN104267972A CN 104267972 A CN104267972 A CN 104267972A CN 201410559789 A CN201410559789 A CN 201410559789A CN 104267972 A CN104267972 A CN 104267972A
- Authority
- CN
- China
- Prior art keywords
- interface
- javascript
- browser
- local interface
- android
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种浏览器本地接口扩展方法及装置,所述方法包括:利用JavaScript框架模块,对浏览器本地接口进行扩展和封装,得到扩展接口;调用JavaScript对象的实现方法,实现所述扩展接口,得到扩展JavaScript对象;Android注册实现模块注册所述JavaScript框架模块中扩展的JavaScript对象到浏览器内核,实现所述JavaScript对象的功能。本发明提供的浏览器本地接口扩展方法,实现了在Android系统中扩展浏览器本地复杂接口的功能,增加了Android系统对网页接口的支持,从而增强了Android系统对网页应用的兼容性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种浏览器本地接口扩展方法及装置。
背景技术
Android操作系统发展迅猛,应用场合涉及手机、PAD、机顶盒等多种终端。Android系统开放的业务模式,吸引了大量的应用开发者,设计了海量的精彩应用。同时,由于HTML5技术的日趋成熟,HTML5应用也日益受到越来越多人的关注。HTML5应用基于网页和浏览器运行,不受系统平台及设备的限制,不需要开发者针对不同操作系统分别开发。因此,为了在Android系统中更好地支持网页应用,需要扩展其对网页接口的支持,实现在Android系统中扩展浏览器本地接口。
传统的浏览器本地接口扩展方法,是通过修改Web引擎源码,从浏览器内核部分支持扩展的本地接口,实现与JavaScript的绑定。但这种方法需要获取平台源码,对平台依赖性很大。针对不同的操作系统,需要在不同的平台源码环境中进行重复编译开发,开发工作量大,维护困难。该扩展方法兼容性较差,实施难度大。另外一种针对Android系统的浏览器本地接口扩展方法,是使用标准的Android接口实现的浏览器本地简单接口的扩展。该方法接口形式单一,无法扩展复杂接口,无法满足网页开发对JavaScript接口的需求。
此外,Android系统本身版本众多,包括基础版本和各开发者修改的分支版本,各Android系统中的浏览器版本也很多,开发人员可以按照不同需求定制修改浏览器。因此,兼容性对于Android系统中浏览器本地接口尤为重要。
发明内容
本发明的目的是提供一种浏览器本地接口扩展方法及装置,利用JavaScript框架扩展浏览器本地接口,通过Android系统提供的标准接口,实现JavaScript接口的具体功能。
为实现上述目的,本发明提供了一种浏览器本地接口扩展方法,该方法包括:
利用JavaScript框架模块,对浏览器本地接口进行扩展和封装,得到扩展接口;
调用JavaScript对象的实现方法,实现所述扩展接口,得到扩展JavaScript对象;
Android注册实现模块注册所述JavaScript框架模块中扩展的JavaScript对象到浏览器内核,实现所述JavaScript对象的功能。
另一方面,本发明还提供了一种浏览器本地接口扩展装置,所述装置包括:
JavaScript框架模块,用于对浏览器本地接口进行扩展和封装,得到扩展接口;
调用JavaScript对象的实现方法,实现所述扩展接口,得到扩展JavaScript对象;
Android注册实现模块,用于注册所述JavaScript框架模块中扩展的JavaScript对象到浏览器内核,实现所述JavaScript对象的功能。
本发明提供的浏览器本地接口扩展方法及装置,利用JavaScript框架扩展浏览器本地接口,通过Android系统提供的标准接口,实现JavaScript接口的具体功能。不需要修改浏览器内核源码,减小了开发的工作量,而且可扩展复杂接口,从而提高了Android系统对网页应用的兼容性。
附图说明
图1为本发明实施例一提供的浏览器本地接口扩展方法示意图;
图2为本发明实施例一提供的浏览器本地接口扩展方法流程图;
图3为本发明实施例三提供的浏览器本地接口扩展装置示意图;
图4为本发明实施例四提供的本地页面回调函数扩展示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
实施例一
本实施例以扩展本地接口chrome.webstore.install(stringurl,function successCallback,function failureCallback)(以下简称chrome.webstore.install接口)为例,该接口用于在Chrome应用商店中下载、安装某个Web应用。其中,参数url表明该Web应用安装包的下载地址;参数successCallback和failureCallback是下载成功或失败的回调函数,当Web应用下载安装成功时successCallback函数被调用,当Web应用下载安装失败时failureCallback函数被调用。
图1为本发明实施例一提供的浏览器本地接口扩展方法示意图。如图1所示,本系统包括JavaScript框架模块、Android注册实现模块。
其中,在JavaScript框架模块中,编写chromeInterface.js文件,完成chrome.webstore.install接口定义,并调用ChromeInterface接口实现下载安装功能。
在浏览器安装包或采用浏览器内核实现的安装包中实现对ChromeInterface接口的定义和方法实现。采用Android标准接口addJavascriptInterface注册ChromeInterface接口到浏览器内核中。
对ChromeInterface接口的定义和方法实现可由JAVA部分代码单独完成,或采用JNI的方式调用C++部分功能接口,并将事件函数传递回JAVA部分,C++代码部分完成具体功能实现。
对浏览器本地接口的扩展,JavaScript对象和方法可以为多种复杂形式,如xxx.xxx、xxx.xxx.xxx等。
所述JavaScript框架中对浏览器本地接口的扩展,可实现对页面回调函数的扩展支持。所述JavaScript框架中对浏览器本地接口的扩展,对页面回调函数进行唯一编号,以满足不同页面可能包含相同含义的回调函数并有可能同时存在的需求。
图2为本发明实施例一提供的浏览器本地接口扩展方法流程图,如图2所示,本发明的浏览器本地接口扩展方法,包括:
步骤101,利用JavaScript框架模块,对浏览器本地接口进行扩展和封装,得到扩展接口。
具体为,在JavaScript框架模块中,编写chromeInterface.js文件,定义chrome.webstore.install接口,得到扩展接口。
优选地,通过调用第一对象的接口方法,实现对浏览器本地接口的扩展和封装。所述第一对象在本实施例中具体为chromeInterface对象。
步骤102,调用JavaScript对象的实现方法,实现所述扩展接口,得到扩展JavaScript对象。
具体为,调用ChromeInterface对象的接口方法,实现所述扩展接口,得到扩展JavaScript对象。
步骤103,Android注册实现模块注册所述JavaScript框架模块中扩展的JavaScript对象到浏览器内核,实现所述JavaScript对象的功能。
具体为,在Android注册实现模块中,将所述JavaScript框架模块中扩展的JavaScript对象注册到浏览器内核,实现所述JavaScript对象的功能。
可选地,采用Android标准接口addJavascriptInterface注册ChromeInterface接口到浏览器内核中。
本发明实施例提供的浏览器本地接口扩展方法,利用JavaScript框架扩展浏览器本地接口,通过Android系统提供的标准接口实现JavaScript接口与浏览器内核的绑定,并由Android本地应用实现JavaScript接口具体功能。不需要修改浏览器内核源码,减小了开发的工作量,而且可扩展复杂接口,从而提高了Android系统对网页应用的兼容性。
实施例二
本实施例中JavaScript框架模块和Android系统模块之间传递的消息为字符串,具体组成如下:消息头、消息类型、回调函数ID、分隔符、数据类型、数据、结束符。各部分的长度和定义可自行约定。
本实施例中,消息的具体内容如下:
消息头为7个字节,为“CWrtMsg”;
消息类型为1个字节,其中,“S”代表成功,“F”代表失败;
回调函数ID不定长,为chromeInterface.js文件中生成的唯一ID;
分隔符为1个字节,为“&”;
数据类型为2个字节,其中,“EI”代表单个应用信息,“EA”代表应用数组信息,“ID”代表单个应用ID,“ST”代表字符串,“SA”代表字符串列表;
数据长度不定;
结束符为4个字节,为“TEND”。
实施例三
图3为本发明实施例三提供的浏览器本地接口扩展装置示意图。如图3所示,所述装置包括:JavaScript框架模块301和Android注册实现模块302。
JavaScript框架模块301,用于对浏览器本地接口进行扩展和封装,得到扩展接口;
调用JavaScript对象的实现方法,实现所述扩展接口,得到扩展JavaScript对象;
Android注册实现模块302,用于注册所述JavaScript框架模块中扩展的JavaScript对象到浏览器内核,实现所述JavaScript对象的功能。
本发明实施例三的浏览器本地接口扩展装置的模块可以实现本发明实施例一的浏览器本地接口扩展方法。本发明浏览器本地接口扩展装置各模块可以执行上述方法实施例中的各步骤。
本发明提供的浏览器本地接口扩展装置,利用JavaScript框架扩展浏览器本地接口,通过Android系统提供的标准接口实现JavaScript接口与浏览器内核的绑定,并由Android本地应用实现JavaScript接口具体功能。不需要修改浏览器内核源码,减小了开发的工作量,而且可扩展复杂接口,从而提高了Android系统对网页应用的兼容性。
实施例四
本实施例中扩展的是安装接口chrome.webstore.install。图4为本发明实施例三提供的本地页面回调函数扩展示意图,如图4所示,包括如下步骤:
S401,在应用商城中,用户点击安装某个网页应用时,页面执行安装接口chrome.webstore.install。
S402,调用网页接口在JavaScript框架中的实现chrome.webstore.install。
S403,在JavaScript框架chromeInterface.js文件中,记录回调函数并编号为chrome.callbackId,将其存放于chrome.callbacks[chrome.callbackId]中。
S404,调用具体实现ChromeInterface接口的ChromeInterface.install(url,chrome.callbackId.toString())方法。
其中,参数url表明该Web应用安装包的下载地址;参数chrome.callbackId.toString()为回调函数的唯一编号;
S405,在Android注册实现模块中,定义ChromeInterface.install方法。
S406,在Android注册实现模块中,将ChromeInterface注册到WebView中。
S407,本实例中不仅由JAVA端完成JS对象的集体实现,而且通过JNI方式调用Chrome WRT相关的安装接口WRTCoreManagerment.install。
S408,C++层WRTCoreManagerment类完成内部处理。
S409,将返回结果和回调函数编号按照一定的消息格式封装成字符串,通过socket客户端发送数据。
S410,JAVA端ChromeInterface类作为socket服务器接收数据,维护返回事件字符串列表。
S 411,页面调用另一个扩展的接口ChromeInterface.getmessage,定期获取返回事件字符串。
S412,页面解析返回事件的字符串,根据回调函数编号找到相应回调函数,执行回调函数返回的数据,例如本例中安装网页应用成功或者失败的事件。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的对象及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
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框架模块,对浏览器本地接口进行扩展和封装可实现对页面回调函数的扩展支持。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410559789.4A CN104267972B (zh) | 2014-10-20 | 2014-10-20 | 浏览器本地接口扩展方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410559789.4A CN104267972B (zh) | 2014-10-20 | 2014-10-20 | 浏览器本地接口扩展方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104267972A true CN104267972A (zh) | 2015-01-07 |
CN104267972B CN104267972B (zh) | 2018-02-13 |
Family
ID=52159496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410559789.4A Active CN104267972B (zh) | 2014-10-20 | 2014-10-20 | 浏览器本地接口扩展方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104267972B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183484A (zh) * | 2015-09-28 | 2015-12-23 | 北京奇虎科技有限公司 | 一种多版本应用程序编程接口兼容的方法及装置 |
CN105933766A (zh) * | 2016-01-21 | 2016-09-07 | 上海东方明珠新媒体股份有限公司 | 基于机顶盒的WebOS系统及机顶盒 |
CN106371710A (zh) * | 2016-08-30 | 2017-02-01 | 乐视控股(北京)有限公司 | 一种功能菜单显示方法和装置 |
CN107450946A (zh) * | 2017-07-24 | 2017-12-08 | 平安科技(深圳)有限公司 | Chrome网页与终端软件通讯方法、设备及存储介质 |
CN107733997A (zh) * | 2017-09-22 | 2018-02-23 | 刘静静 | 一种基于浏览器的多功能移动网页和网页游戏的实现方法 |
CN110286964A (zh) * | 2018-03-15 | 2019-09-27 | 深圳Tcl数字技术有限公司 | 嵌入式应用自动调用接口的方法、存储介质及智能终端 |
CN111338631A (zh) * | 2018-12-18 | 2020-06-26 | 北京奇虎科技有限公司 | 一种通用接口框架的生成方法、装置和计算设备 |
US10917520B1 (en) * | 2019-07-01 | 2021-02-09 | Intuit Inc. | Automated self-service callback for proactive and dynamic user assistance |
CN112559121A (zh) * | 2020-10-20 | 2021-03-26 | 四川天邑康和通信股份有限公司 | 一种IPTV浏览器JavaScript扩展对象的处理方法和系统 |
CN112860982A (zh) * | 2019-11-27 | 2021-05-28 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备及计算机存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070234285A1 (en) * | 2006-02-28 | 2007-10-04 | Mendoza Alfredo V | Determining the portability of an application program from a source platform to a target platform |
CN102929638A (zh) * | 2012-11-07 | 2013-02-13 | 广州市动景计算机科技有限公司 | 扩展WebApp应用功能的方法和系统 |
CN102929599A (zh) * | 2012-09-26 | 2013-02-13 | 广州市动景计算机科技有限公司 | 移动终端浏览器界面的修改方法及装置、移动终端 |
CN103001926A (zh) * | 2011-09-09 | 2013-03-27 | 华为技术有限公司 | 一种订阅通知的方法、装置和系统 |
-
2014
- 2014-10-20 CN CN201410559789.4A patent/CN104267972B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070234285A1 (en) * | 2006-02-28 | 2007-10-04 | Mendoza Alfredo V | Determining the portability of an application program from a source platform to a target platform |
CN103001926A (zh) * | 2011-09-09 | 2013-03-27 | 华为技术有限公司 | 一种订阅通知的方法、装置和系统 |
CN102929599A (zh) * | 2012-09-26 | 2013-02-13 | 广州市动景计算机科技有限公司 | 移动终端浏览器界面的修改方法及装置、移动终端 |
CN102929638A (zh) * | 2012-11-07 | 2013-02-13 | 广州市动景计算机科技有限公司 | 扩展WebApp应用功能的方法和系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183484A (zh) * | 2015-09-28 | 2015-12-23 | 北京奇虎科技有限公司 | 一种多版本应用程序编程接口兼容的方法及装置 |
CN105933766A (zh) * | 2016-01-21 | 2016-09-07 | 上海东方明珠新媒体股份有限公司 | 基于机顶盒的WebOS系统及机顶盒 |
CN106371710A (zh) * | 2016-08-30 | 2017-02-01 | 乐视控股(北京)有限公司 | 一种功能菜单显示方法和装置 |
CN107450946B (zh) * | 2017-07-24 | 2020-08-14 | 平安科技(深圳)有限公司 | Chrome网页与终端软件通讯方法、设备及存储介质 |
CN107450946A (zh) * | 2017-07-24 | 2017-12-08 | 平安科技(深圳)有限公司 | Chrome网页与终端软件通讯方法、设备及存储介质 |
CN107733997A (zh) * | 2017-09-22 | 2018-02-23 | 刘静静 | 一种基于浏览器的多功能移动网页和网页游戏的实现方法 |
CN110286964A (zh) * | 2018-03-15 | 2019-09-27 | 深圳Tcl数字技术有限公司 | 嵌入式应用自动调用接口的方法、存储介质及智能终端 |
CN111338631A (zh) * | 2018-12-18 | 2020-06-26 | 北京奇虎科技有限公司 | 一种通用接口框架的生成方法、装置和计算设备 |
CN111338631B (zh) * | 2018-12-18 | 2024-03-01 | 北京奇虎科技有限公司 | 一种通用接口框架的生成方法、装置和计算设备 |
US10917520B1 (en) * | 2019-07-01 | 2021-02-09 | Intuit Inc. | Automated self-service callback for proactive and dynamic user assistance |
CN112860982A (zh) * | 2019-11-27 | 2021-05-28 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备及计算机存储介质 |
CN112860982B (zh) * | 2019-11-27 | 2024-05-10 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备及计算机存储介质 |
CN112559121A (zh) * | 2020-10-20 | 2021-03-26 | 四川天邑康和通信股份有限公司 | 一种IPTV浏览器JavaScript扩展对象的处理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104267972B (zh) | 2018-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104267972A (zh) | 浏览器本地接口扩展方法及装置 | |
CN110691136B (zh) | 数据交互方法、装置、电子设备及存储介质 | |
CN108563517B (zh) | 系统接口的调用方法及装置 | |
CN104111944B (zh) | 页面处理方法和装置以及页面生成方法和装置 | |
CN103942225B (zh) | 一种混合型应用客户端的资源调用方法、客户端及系统 | |
CN103150513B (zh) | 拦截应用程序中的植入信息的方法及装置 | |
CN106569856B (zh) | 一种应用视图资源文件的加载方法和装置 | |
CN104111855A (zh) | 一种基于Lua的iOS客户端功能动态更新的方法 | |
CN110908712A (zh) | 移动端跨平台的数据处理方法和设备 | |
CN110187902A (zh) | 基于spring boot的项目改造方法、装置、设备及存储介质 | |
CN106445508A (zh) | 一种游戏引擎 | |
CN107451162A (zh) | 网络资源访问设备、混合设备及方法 | |
CN108647032B (zh) | 应用加载方法及装置、计算机装置和计算机可读存储介质 | |
CN105786511B (zh) | 终端设备Web应用管理的实现方法 | |
CN105743955A (zh) | 一种扩展JavaScript对象方法 | |
CN111367685B (zh) | 接口调用的方法及装置、计算机设备、存储介质 | |
CN108376066A (zh) | 代码处理装置及代码处理方法 | |
CN106648569A (zh) | 目标序列化实现方法和装置 | |
CN107678741B (zh) | 列表视图的实现方法、装置、可读存储介质及设备 | |
CN107408055B (zh) | 代码缓存系统 | |
CN105138399A (zh) | 跨平台移动Web应用运行引擎 | |
CN102662838A (zh) | 一种浏览器中Flash的调试方法及系统 | |
CN114297549A (zh) | 组件处理方法及装置 | |
CN110109684A (zh) | 区块链节点管理代理服务安装方法、电子装置及存储介质 | |
CN109634758A (zh) | 基于json文件控制事件和行为的方法及中间件平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210804 Address after: Room 1601, 16th floor, East Tower, Ximei building, No. 6, Changchun Road, high tech Industrial Development Zone, Zhengzhou, Henan 450001 Patentee after: Zhengzhou xinrand Network Technology Co.,Ltd. Address before: 100190, No. 21 West Fourth Ring Road, Beijing, Haidian District Patentee before: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES |