CN104267972B - 浏览器本地接口扩展方法及装置 - Google Patents

浏览器本地接口扩展方法及装置 Download PDF

Info

Publication number
CN104267972B
CN104267972B CN201410559789.4A CN201410559789A CN104267972B CN 104267972 B CN104267972 B CN 104267972B CN 201410559789 A CN201410559789 A CN 201410559789A CN 104267972 B CN104267972 B CN 104267972B
Authority
CN
China
Prior art keywords
javascript
interface
browser
local interface
extended
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.)
Active
Application number
CN201410559789.4A
Other languages
English (en)
Other versions
CN104267972A (zh
Inventor
姜艳
胡琳琳
刘秀秀
郭志川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Xinrand Network Technology Co ltd
Original Assignee
Institute of Acoustics CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Acoustics CAS filed Critical Institute of Acoustics CAS
Priority to CN201410559789.4A priority Critical patent/CN104267972B/zh
Publication of CN104267972A publication Critical patent/CN104267972A/zh
Application granted granted Critical
Publication of CN104267972B publication Critical patent/CN104267972B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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(string url,functionsuccessCallback,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 (2)

1.一种浏览器本地接口扩展方法,其特征在于,该方法包括:
利用JavaScript框架模块,通过调用第一对象的接口,对浏览器本地接口进行扩展和封装,得到扩展接口;
对浏览器本地接口的定义和方法实现由JAVA部分代码单独完成,或采用JNI的方式调用C++部分功能接口,并将事件函数传递回JAVA部分,C++代码部分完成具体功能实现;调用JavaScript对象的实现方法,实现所述扩展接口,得到扩展JavaScript对象;
Android注册实现模块通过Android标准接口,注册所述JavaScript框架模块中扩展的JavaScript对象到浏览器内核,实现所述JavaScript对象的功能;
所述JavaScript框架模块和所述Android注册实现模块之间传递的消息为字符串,所述字符串包含消息头、消息类型、回调函数ID、分隔符、数据类型、数据和结束符中的一种或多种,各部分的长度和定义自行约定;
所述JavaScript框架中对浏览器本地接口的扩展时,对页面回调函数进行唯一编号;
利用JavaScript框架模块,对浏览器本地接口进行扩展和封装实现对页面回调函数的扩展支持。
2.一种浏览器本地接口扩展装置,其特征在于,该装置包括:
JavaScript框架模块,用于通过调用第一对象的接口,对浏览器本地接口进行扩展和封装,得到扩展接口;
调用JavaScript对象的实现方法,实现所述扩展接口,得到扩展JavaScript对象;
Android注册实现模块,用于通过Android标准接口注册所述JavaScript框架模块中扩展的JavaScript对象到浏览器内核,实现所述JavaScript对象的功能;
所述JavaScript框架模块和所述Android注册实现模块之间传递的消息为字符串,所述字符串包含消息头、消息类型、回调函数ID、分隔符、数据类型、数据和结束符中的一种或多种,各部分的长度和定义自行约定;
所述JavaScript框架中对浏览器本地接口的扩展时,对页面回调函数进行唯一编号;
对浏览器本地接口的定义和方法实现由JAVA部分代码单独完成,或采用JNI的方式调用C++部分功能接口,并将事件函数传递回JAVA部分,C++代码部分完成具体功能实现;
利用JavaScript框架模块,对浏览器本地接口进行扩展和封装实现对页面回调函数的扩展支持。
CN201410559789.4A 2014-10-20 2014-10-20 浏览器本地接口扩展方法及装置 Active CN104267972B (zh)

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 CN104267972A (zh) 2015-01-07
CN104267972B true 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)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183484A (zh) * 2015-09-28 2015-12-23 北京奇虎科技有限公司 一种多版本应用程序编程接口兼容的方法及装置
CN105933766B (zh) * 2016-01-21 2019-01-15 东方明珠新媒体股份有限公司 基于机顶盒的WebOS系统及机顶盒
CN106371710A (zh) * 2016-08-30 2017-02-01 乐视控股(北京)有限公司 一种功能菜单显示方法和装置
CN107450946B (zh) * 2017-07-24 2020-08-14 平安科技(深圳)有限公司 Chrome网页与终端软件通讯方法、设备及存储介质
CN107733997A (zh) * 2017-09-22 2018-02-23 刘静静 一种基于浏览器的多功能移动网页和网页游戏的实现方法
CN110286964A (zh) * 2018-03-15 2019-09-27 深圳Tcl数字技术有限公司 嵌入式应用自动调用接口的方法、存储介质及智能终端
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
CN112860982B (zh) * 2019-11-27 2024-05-10 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备及计算机存储介质
CN112559121A (zh) * 2020-10-20 2021-03-26 四川天邑康和通信股份有限公司 一种IPTV浏览器JavaScript扩展对象的处理方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929638A (zh) * 2012-11-07 2013-02-13 广州市动景计算机科技有限公司 扩展WebApp应用功能的方法和系统
CN102929599A (zh) * 2012-09-26 2013-02-13 广州市动景计算机科技有限公司 移动终端浏览器界面的修改方法及装置、移动终端

Family Cites Families (2)

* Cited by examiner, † Cited by third party
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 华为技术有限公司 一种订阅通知的方法、装置和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102929599A (zh) * 2012-09-26 2013-02-13 广州市动景计算机科技有限公司 移动终端浏览器界面的修改方法及装置、移动终端
CN102929638A (zh) * 2012-11-07 2013-02-13 广州市动景计算机科技有限公司 扩展WebApp应用功能的方法和系统

Also Published As

Publication number Publication date
CN104267972A (zh) 2015-01-07

Similar Documents

Publication Publication Date Title
CN104267972B (zh) 浏览器本地接口扩展方法及装置
CN103955364B (zh) 一种适用于手机的前端组件方法
CN108563517B (zh) 系统接口的调用方法及装置
CN106569856B (zh) 一种应用视图资源文件的加载方法和装置
CN112114784A (zh) 一种基于Single-Spa的前端微服务化系统
CN110908712A (zh) 移动端跨平台的数据处理方法和设备
CN103176834B (zh) 一种调用扩展接口的方法及装置
CN105718313A (zh) 应用操作方法和装置
CN103747004A (zh) 物联网平台通信协议的实现方法
CN110580174B (zh) 应用组件生成方法、服务器及终端
CN108647032B (zh) 应用加载方法及装置、计算机装置和计算机可读存储介质
CN104038510A (zh) iOS系统透明代理的实现方法及系统
CN104301401A (zh) 一种基于快速服务封装的移动应用平台
CN103309861A (zh) 跨域数据获取的方法与装置
CN109240697A (zh) 调用处理方法及装置、存储介质
CN108121539A (zh) 组件处理方法和装置
JP2020503597A (ja) シブリング・コール処理のためのコンピュータ・プログラム製品、コンピュータ・システムおよびコンピュータによって実施される方法
CN106648569A (zh) 目标序列化实现方法和装置
CN116974620A (zh) 应用程序的生成方法、运行方法以及相应的装置
CN102253986A (zh) 提高多终端网页显示效果的方法和装置
CN114297549A (zh) 组件处理方法及装置
CN103019818B (zh) 页面交互方法与装置
CN109561131A (zh) 一种基于编程语言下载excel数据的方法及电子设备
CN111124924B (zh) Api部署方法、装置、电子设备及存储介质
CN107644322A (zh) 基于OnlineBox系统的多终端审批方法及系统

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

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

TR01 Transfer of patent right