CN104932910A - 应用程序接口扩展的方法及*** - Google Patents
应用程序接口扩展的方法及*** Download PDFInfo
- Publication number
- CN104932910A CN104932910A CN201410106080.9A CN201410106080A CN104932910A CN 104932910 A CN104932910 A CN 104932910A CN 201410106080 A CN201410106080 A CN 201410106080A CN 104932910 A CN104932910 A CN 104932910A
- Authority
- CN
- China
- Prior art keywords
- api
- information
- call
- expansion
- web application
- 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.)
- Pending
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用程序接口扩展的方法及***,所述方法包括:Web应用确定需调用的应用程序接口API为扩展的API时,向Web服务器发送调用指令;Web服务器接收所述调用指令,解析所述调用指令而生成解析结果;根据所述解析结果获取待调用的所述API的信息,根据所述API的信息在本地查找出对应的API,对所查找出的本地API进行调用,并向所述Web应用返回API的调用结果。本发明的JavaScript API扩展方式简单、通用,能够解决现有技术方案低通用性、高复杂度的缺陷,提高了JavaScript API扩展的可用性。
Description
技术领域
本发明涉及应用程序接口(API,Application Programming Interface)扩展技术,尤其涉及一种便携智能终端中的应用程序接口扩展的方法及***。
背景技术
超文本标记语言(HTML,Hypertext Markup Language)以及JavaScript(简称JS)技术是Web应用体系的核心技术,其中HTML负责Web应用界面呈现,JS负责后台逻辑处理。而HTML和JS代码都是运行在浏览器引擎之上,无法直接和底层操作***交互,因此传统的Web应用存在无法访问操作***和本地设备的功能局限性,对Web应用的适用范围是一个阻碍。需要说明的是,本申请文件中,Web应用是指Web前端技术开发的应用,不涉及JSP、PHP等后端技术。
目前行业内已存在一些技术方案实现Web应用访问操作***和本地设备的功能,比较有代表性的方案是PhoneGap。图1为扩展API的架构示意图,如图1所示,PhoneGap通过扩展浏览器引擎功能的方式来增加JS API。Web应用通过扩展JS API实现对操作***(OS,Operating System)的访问。
对于PhoneGap等现有技术,存在以下技术问题:
1、通过扩展浏览器引擎功能的方式,通用性不高。这是因为使用了PhoneGap来扩展JS API的Web应用必须运行在PhoneGap产品上,而普通浏览器不支持这些扩展JS API,因此这些应用在普通浏览器上无法运行。
2、浏览器引擎比如Android、iOS等上均使用的WebKit引擎很复杂,该技术实施门槛比较高,实现JS API的扩展并不容易。
发明内容
本发明实施例为解决上述技术问题,提供一种应用程序接口扩展的方法及***,能根据需要为Web应用提供扩展的JS API,扩展JS API的方式快捷简单。
本发明实施例的技术方案是这样实现的:
一种应用程序接口扩展的方法,包括:
网页Web应用确定需调用的应用程序接口API为扩展的API时,向Web服务器发送调用指令;
所述Web服务器接收所述调用指令,解析所述调用指令而生成解析结果;根据所述解析结果获取待调用的所述API的信息,根据所述API的信息在本地查找出对应的API,对所查找出的本地API进行调用,并向所述Web应用返回API的调用结果。
优选地,所述API设置于本地操作***中。
优选地,所述Web应用确定需调用的API为扩展的API,包括:
所述Web应用根据业务请求消息中的业务类型确定需调用的API为扩展的API;或者,
所述Web应用根据业务请求消息中的接口信息确定需调用的API为扩展的API。
优选地,所述调用指令中至少包括所述API的函数名和输入参数的信息;
对应地,所述API的信息至少包括所述API的函数名和输入参数的信息。
优选地,所述根据所述API的信息在本地查找出对应的API,包括:
将所述API的信息中的函数名信息作为关键字,从函数对应表中查找出本地API;
并利用所述API的信息中的输入参数验证所查找出的本地API的身份是否正确。
一种应用程序接口扩展的***,包括:网页Web应用和Web服务器,其中:
所述Web应用,用于确定需调用的应用程序接口API为扩展的API时,向Web服务器发送调用指令;
所述Web服务器,用于接收所述Web应用发送的所述调用指令,解析所述调用指令而生成解析结果;根据所述解析结果获取待调用的所述API的信息,根据所述API的信息在本地查找出对应的API,对所查找出的本地API进行调用,并向所述Web应用返回API的调用结果。
优选地,所述***还包括本地操作***;所述API设置于本地操作***中。
优选地,所述Web应用,
还用于根据业务请求消息中的业务类型确定需调用的API为扩展的API;或者,
还用于根据业务请求消息中的接口信息确定需调用的API为扩展的API。
优选地,所述调用指令中至少包括所述API的函数名和输入参数的信息;
对应地,所述API的信息至少包括所述API的函数名和输入参数的信息。
优选地,所述Web服务器,
还用于将所述API的信息中的函数名信息作为关键字,从函数对应表中查找出本地API;并利用所述API的信息中的输入参数验证所查找出的本地API的身份是否正确。
本发明实施例中,Web应用确定需调用的API为扩展的API时,向Web服务器发送调用指令;Web服务器接收所述调用指令,解析调用指令而生成解析结果;根据解析结果获取待调用的API的信息,根据API的信息在本地查找出对应的API,对所查找出的本地API进行调用,并向所述Web应用返回API的调用结果。
与现有技术相比,本发明实施例的技术方案至少有以下有益效果:
本发明实施例的JavaScript API扩展方式简单、通用,能够解决现有技术方案低通用性、高复杂度的缺陷,提高了JavaScript API扩展的可用性。
附图说明
图1为扩展API的架构示意图;
图2为本发明实施例的应用程序接口扩展的架构及流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。
图2为本发明实施例的应用程序接口扩展的架构及流程示意图,如图2所示,Web应用中安装有调用扩展的JS API的JS代码,扩展的API设置于本地代码中,即设置于操作***中。当Web应用需调用扩展的JS API时,向Web服务器(Web Internal Server)发送相关请求消息,由Web Internal Server根据相关请求消息获取扩展的JS API的信息,由Web Internal Server对扩展的JS API进行调用,并在获取到调用结果后,发送给Web应用。
以下通过具体示例,进一步阐明本发明技术方案的实质。
如图2所示,Web应用调用扩展的JS API的流程具体包括以下步骤:
步骤201,Web应用的JS代码调用扩展的JS API;
JS API的实现代码中,采用Ajax方式向本机的Web服务器(Web InternalServer)发送超文本传输协议(HTTP,Hyper Text Transfer Protocol)数据请求,请求字段中包括JS API的“函数名”和“输入参数”。
以下是步骤201的实现示例:
具体地,若Web应用调用普通API,则可通过浏览器引擎直接调用,而对于扩展API,Web应用需通过Web Internal Server对扩展的API进行调用。Web应用根据业务请求消息中的业务类型确定需调用的API为扩展的API;或者,Web应用根据业务请求消息中的接口信息确定需调用的API为扩展的API。
步骤202,Web Internal Server接收到数据请求后,从中获得“函数名”和“输入参数”字段,并根据“函数名”字段作为关键字,从函数对应表中查找出本地API。
本步骤中,可以利用所述API的信息中的输入参数验证所查找出的本地API的身份是否正确。即可以通过API的信息确认所查找出的API是否是Web应用欲调用的扩展API。
步骤203,调用本地API;本地API的实现代码中访问操作***来实现既定需求(仍以上述示例,假定操作***提供了osGetDeviceId函数,该函数返回本机设备的DeviceID,则nativeGetDeviceId函数调用osGetDeviceId即可满足需求)。
以下是步骤203的实现示例:
步骤204,操作***返回访问结果。
步骤205,本地代码对操作***返回结果做必要的逻辑处理之后,将最终结果发送给Web Internal Server。
步骤206,Web Internal Server得到本地代码执行结果,并将执行结果封装至HTTP数据应答消息中,发送给Web应用。
结合图2所示,本发明实施例还记载了一种应用程序接口扩展的***,包括:Web应用和Web服务器,其中:
所述Web应用,用于确定需调用的应用程序接口API为扩展的API时,向Web服务器发送调用指令;
所述Web服务器,用于接收所述Web应用发送的所述调用指令,解析所述调用指令而生成解析结果;根据所述解析结果获取待调用的所述API的信息,根据所述API的信息在本地查找出对应的API,对所查找出的本地API进行调用,并向所述Web应用返回API的调用结果。
如图2所示,所述***还包括本地操作***;所述API设置于本地操作***中。
本发明实施例中,所述Web应用,
还用于根据业务请求消息中的业务类型确定需调用的API为扩展的API;或者,还用于根据业务请求消息中的接口信息确定需调用的API为扩展的API。
上述调用指令中至少包括所述API的函数名和输入参数的信息;
对应地,所述API的信息至少包括所述API的函数名和输入参数的信息。
本发明实施例中,所述Web服务器,
还用于将所述API的信息中的函数名信息作为关键字,从函数对应表中查找出本地API;并利用所述API的信息中的输入参数验证所查找出的本地API的身份是否正确。
本领域技术人员应当理解,本发明实施例的应用程序接口扩展的***中的Web应用和Web服务器的实现功能可参照前述应用程序接口扩展的方法的相关描述而理解。
本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
在本发明所提供的几个实施例中,应该理解到,所揭露的方法、装置和电子设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加应用功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明实施例上述集成的单元如果以应用功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以应用产品的形式体现出来,该计算机应用产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明的保护范围并不局限于此,熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种应用程序接口扩展的方法,其特征在于,所述方法包括:
网页Web应用确定需调用的应用程序接口API为扩展的API时,向Web服务器发送调用指令;
所述Web服务器接收所述调用指令,解析所述调用指令而生成解析结果;根据所述解析结果获取待调用的所述API的信息,根据所述API的信息在本地查找出对应的API,对所查找出的本地API进行调用,并向所述Web应用返回API的调用结果。
2.根据权利要求1所述的方法,其特征在于,所述API设置于本地操作***中。
3.根据权利要求1所述的方法,其特征在于,所述Web应用确定需调用的API为扩展的API,包括:
所述Web应用根据业务请求消息中的业务类型确定需调用的API为扩展的API;或者,
所述Web应用根据业务请求消息中的接口信息确定需调用的API为扩展的API。
4.根据权利要求1所述的方法,其特征在于,所述调用指令中至少包括所述API的函数名和输入参数的信息;
对应地,所述API的信息至少包括所述API的函数名和输入参数的信息。
5.根据权利要求4所述的方法,其特征在于,所述根据所述API的信息在本地查找出对应的API,包括:
将所述API的信息中的函数名信息作为关键字,从函数对应表中查找出本地API;
并利用所述API的信息中的输入参数验证所查找出的本地API的身份是否正确。
6.一种应用程序接口扩展的***,其特征在于,所述***包括:网页Web应用和Web服务器,其中:
所述Web应用,用于确定需调用的应用程序接口API为扩展的API时,向Web服务器发送调用指令;
所述Web服务器,用于接收所述Web应用发送的所述调用指令,解析所述调用指令而生成解析结果;根据所述解析结果获取待调用的所述API的信息,根据所述API的信息在本地查找出对应的API,对所查找出的本地API进行调用,并向所述Web应用返回API的调用结果。
7.根据权利要求6所述的***,其特征在于,所述***还包括本地操作***;所述API设置于本地操作***中。
8.根据权利要求6所述的***,其特征在于,所述Web应用,
还用于根据业务请求消息中的业务类型确定需调用的API为扩展的API;或者,
还用于根据业务请求消息中的接口信息确定需调用的API为扩展的API。
9.根据权利要求6所述的***,其特征在于,所述调用指令中至少包括所述API的函数名和输入参数的信息;
对应地,所述API的信息至少包括所述API的函数名和输入参数的信息。
10.根据权利要求9所述的***,其特征在于,所述Web服务器,
还用于将所述API的信息中的函数名信息作为关键字,从函数对应表中查找出本地API;并利用所述API的信息中的输入参数验证所查找出的本地API的身份是否正确。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410106080.9A CN104932910A (zh) | 2014-03-20 | 2014-03-20 | 应用程序接口扩展的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410106080.9A CN104932910A (zh) | 2014-03-20 | 2014-03-20 | 应用程序接口扩展的方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104932910A true CN104932910A (zh) | 2015-09-23 |
Family
ID=54120086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410106080.9A Pending CN104932910A (zh) | 2014-03-20 | 2014-03-20 | 应用程序接口扩展的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104932910A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389222A (zh) * | 2015-12-15 | 2016-03-09 | 中国科学院声学研究所 | 一种动态调用原生接口的方法、装置和*** |
CN107133077A (zh) * | 2016-02-29 | 2017-09-05 | 深圳秀豹科技有限公司 | 一种网页端调用本地应用功能的方法及装置 |
CN107423037A (zh) * | 2016-03-09 | 2017-12-01 | 阿里巴巴集团控股有限公司 | 应用程序接口定位方法及设备 |
CN110377273A (zh) * | 2019-07-01 | 2019-10-25 | 北京字节跳动网络技术有限公司 | 一种数据处理的方法、装置、介质和电子设备 |
CN110875839A (zh) * | 2018-09-03 | 2020-03-10 | 中国电信股份有限公司 | 网络模型动态扩展方法和***、计算机可读存储介质 |
CN111182223A (zh) * | 2020-01-14 | 2020-05-19 | Oppo广东移动通信有限公司 | 图像处理方法、装置、存储介质及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080071884A1 (en) * | 2006-09-15 | 2008-03-20 | Emc Corporation | Protecting client-side code |
CN101488143A (zh) * | 2008-01-16 | 2009-07-22 | 重庆安软信息科技有限公司 | 一种新型的web应用和本地应用的交互模式 |
CN102929638A (zh) * | 2012-11-07 | 2013-02-13 | 广州市动景计算机科技有限公司 | 扩展WebApp应用功能的方法和*** |
CN103106102A (zh) * | 2013-01-14 | 2013-05-15 | 百度在线网络技术(北京)有限公司 | 一种web应用程序的运行方法及移动终端 |
CN103177040A (zh) * | 2011-12-26 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 网页应用的功能调用方法及装置 |
CN103488527A (zh) * | 2013-09-03 | 2014-01-01 | 新浪网技术(中国)有限公司 | 一种php api调用方法、相关设备及*** |
-
2014
- 2014-03-20 CN CN201410106080.9A patent/CN104932910A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080071884A1 (en) * | 2006-09-15 | 2008-03-20 | Emc Corporation | Protecting client-side code |
CN101488143A (zh) * | 2008-01-16 | 2009-07-22 | 重庆安软信息科技有限公司 | 一种新型的web应用和本地应用的交互模式 |
CN103177040A (zh) * | 2011-12-26 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 网页应用的功能调用方法及装置 |
CN102929638A (zh) * | 2012-11-07 | 2013-02-13 | 广州市动景计算机科技有限公司 | 扩展WebApp应用功能的方法和*** |
CN103106102A (zh) * | 2013-01-14 | 2013-05-15 | 百度在线网络技术(北京)有限公司 | 一种web应用程序的运行方法及移动终端 |
CN103488527A (zh) * | 2013-09-03 | 2014-01-01 | 新浪网技术(中国)有限公司 | 一种php api调用方法、相关设备及*** |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389222A (zh) * | 2015-12-15 | 2016-03-09 | 中国科学院声学研究所 | 一种动态调用原生接口的方法、装置和*** |
CN105389222B (zh) * | 2015-12-15 | 2018-12-21 | 中国科学院声学研究所 | 一种动态调用原生接口的方法、装置和*** |
CN107133077A (zh) * | 2016-02-29 | 2017-09-05 | 深圳秀豹科技有限公司 | 一种网页端调用本地应用功能的方法及装置 |
CN107423037A (zh) * | 2016-03-09 | 2017-12-01 | 阿里巴巴集团控股有限公司 | 应用程序接口定位方法及设备 |
CN107423037B (zh) * | 2016-03-09 | 2021-04-02 | 阿里巴巴集团控股有限公司 | 应用程序接口定位方法及设备 |
CN110875839A (zh) * | 2018-09-03 | 2020-03-10 | 中国电信股份有限公司 | 网络模型动态扩展方法和***、计算机可读存储介质 |
CN110377273A (zh) * | 2019-07-01 | 2019-10-25 | 北京字节跳动网络技术有限公司 | 一种数据处理的方法、装置、介质和电子设备 |
CN110377273B (zh) * | 2019-07-01 | 2023-07-28 | 北京字节跳动网络技术有限公司 | 一种数据处理的方法、装置、介质和电子设备 |
CN111182223A (zh) * | 2020-01-14 | 2020-05-19 | Oppo广东移动通信有限公司 | 图像处理方法、装置、存储介质及电子设备 |
CN111182223B (zh) * | 2020-01-14 | 2021-06-15 | Oppo广东移动通信有限公司 | 图像处理方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104932910A (zh) | 应用程序接口扩展的方法及*** | |
US10635735B2 (en) | Method and apparatus for displaying information | |
CN102591724B (zh) | 消息交互方法及装置 | |
US8682964B1 (en) | Progressively loading network content | |
CN103607427A (zh) | 信息展示方法和装置 | |
CN105472035A (zh) | 一种文件传输方法及装置 | |
CN113010827B (zh) | 页面渲染方法、装置、电子设备以及存储介质 | |
CN103970760B (zh) | 一种网页请求处理方法及装置 | |
CN105117469A (zh) | 一种个性化替换网页主题的方法及装置 | |
CN105100003A (zh) | 一种客户端的网页游戏预加载方法及装置 | |
CN104881318A (zh) | 一种接口调用方法、装置及终端 | |
CN104881273A (zh) | 一种网页渲染的分析方法和终端设备 | |
CN105260444A (zh) | 数据自适应显示方法、终端设备及服务器 | |
US20190045029A1 (en) | Service processing method and device | |
CN110895481A (zh) | 桌面应用的渲染方法、装置和*** | |
CN104267921A (zh) | 一种页面显示控制方法及服务器 | |
CN111666199B (zh) | 在智能终端上执行的调试方法以及软件调试器 | |
CN103488508B (zh) | 一种浏览器的工作方法、浏览器及终端设备 | |
CN110674435A (zh) | 页面访问方法、服务器、终端、电子设备及可读存储介质 | |
CN110674182A (zh) | 大数据的分析方法、及数据分析服务器 | |
US10095791B2 (en) | Information search method and apparatus | |
US20150317143A1 (en) | Method and apparatus for installing webpage application | |
CN106598829A (zh) | 一种网页自动化测试方法及装置 | |
CN104317819A (zh) | 基于浏览器页面间跨域通信的方法和*** | |
CN106708717A (zh) | 一种开发调试方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150923 |
|
RJ01 | Rejection of invention patent application after publication |