扩展WebApp应用功能的方法和系统的制作方法

文档序号:6380823阅读:159来源:国知局
专利名称:扩展WebApp应用功能的方法和系统的制作方法
技术领域
本发明涉及移动通信技术领域,更为具体地,涉及一种扩展WebApp应用功能的方法和系统。
背景技术
WebApp是指基于Web的系统和应用、建立在HTML5标准之上的基于浏览器的网络应用程序,其作用是向广大的最终用户发布一组复杂的内容和功能。目前,很多浏览器厂商都在浏览器上实现了一套WebApp (网络应用)框架,用以安装WebApp,以实现扩展浏览器的功能。然而,由于WebApp能够实现的功能均由WebApp框架提供,而WebApp框架能够完成的功能,又只能是由浏览器提供。因此,对于一些浏览器无法提供的功能,WebApp也就无法使用,从而导致现有的WebApp的功能相对有限,这种情况这大大限制了 WebApp的发展空间。图I示出了浏览器对WebApp的限制示意图。然而,现有的应用软件很多,能完成的功能很多,若把这些平台相关功能的实现完全依赖于浏览器厂商去实现,那么这会很不现实,毕竟浏览器厂商一家之力无法一一实现,而且无法做得比原生应用还好,甚至有可能引入大量的BUG。因此,如何能让WebApp直接使用安装在操作系统上的其他应用的功能,成为基于浏览器的网络应用中亟需解决的问题。

发明内容
鉴于上述问题,本发明的目的是提供一种扩展WebApp应用功能的方法和系统,以使得WebApp能够直接使用安装在操作系统上的其他应用的功能。 根据本发明的一个方面,提供了一种扩展WebApp应用功能的方法,包括在WebApp中增加一个包含扩展JS函数和作为响应所述扩展JS函数请求的本地应用的地址的功能扩展字段;通过调用所述扩展JS函数把函数的各个参数发送至浏览器内核;WebApp框架根据浏览器内核接收的调用消息把本地应用程序的地址设置为响应所述扩展JS函数请求的本地应用的地址;根据所述本地应用的地址激活所述地址指定的目标应用程序;被激活的目标应用程序根据扩展JS函数的参数执行所述扩展JS函数,并把执行结果返回WebApp。根据本发明的另一方面,提供了一种扩展WebApp应用功能的系统,包括功能扩展字段配置单元,用于在WebApp中增加一个包含扩展JS函数和作为响应所述扩展JS函数请求的本地应用的地址的功能扩展字段;扩展函数调用单元,用于调用所述述扩展JS函数,并通过所述调用把函数的各个参数发送至浏览器内核;
本地应用锁定单元,用于根据浏览器内核接收的调用消息把目标应用程序的地址设置为响应所述扩展JS函数请求的本地应用的地址;本地应用激活单元,用于根据本地应用的地址激活所述地址指定的目标应用程序;扩展函数执行单元,用于通过被激活的目标应用程序根据扩展JS函数的参数执行所述扩展JS函数,并把执行结果返回WebApp。利用上述根据本发明的展WebApp应用功能的方法和系统,能让WebApp直接使用安装在操作系统上的其他应用的功能(只要相应的应用在操作系统上已经安装了),调用其他应用内提供的函数,大大扩展了 WebApp的能力,使得WebApp能使用浏览器以外其他安装在操作系统上的应用的功能,而无须让浏览器去一一扩展。上述使得WebApp的能力大大增加表现在一些浏览器平台无法提供或者暂时未提供的功能,WebApp利用本地的应用就可以做到,因为它可以根据包名访问到已经实现了这些功用的应用并使用它们提供的功能。例如,对于HTML 5规定的一些新规范电池API、 方向传感器等,若浏览器还没提供这样的功能,那么WebApp还是可以实现,因为它能使用其他安装在本地的具有这些功能的应用获取到电池的电量和当前方向传感器的数据。为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。


通过参考以下结合附图的说明及权利要求书的内容,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中图I为现有技术中浏览器对WebApp的限制示意图;图2为根据本发明实施例的扩展WebApp应用功能的方法流程示意图;图3为根据本发明实施例的扩展WebApp应用功能的方法的应用流程示意图;图4为根据本发明实施例的扩展WebApp应用功能的系统的方框示意图。在所有附图中相同的标号指示相似或相应的特征或功能。
具体实施例方式在下面的描述中,出于说明的目的,为了提供对一个或多个实施例的全面理解,阐述了许多具体细节。然而,很明显,也可以在没有这些具体细节的情况下实现这些实施例。在其它例子中,为了便于描述一个或多个实施例,公知的结构和设备以方框图的形式示出。为了清楚地说明本发明的技术方案,以下先对描述本发明的过程中涉及的一些名词作出解释。浏览器内核负责对网页进行加载、显示、以及JS的执行的部分,是浏览器的核心。WebApp:用来运行在浏览器上的网络应用程序。WebApp框架负责实现WebApp的安装,运行,卸载,更新等功能的浏览器模块。
另外,本发明在对具体实施方式
进行表述时所用到的“目标应用程序”可以是浏览器、手机QQ等任何能够联网应用的程序,如果没有特别的说明,通常意义上的用户进行联网所需要的应用程序都可以被视为本发明中所表述的网络应用程序。另外,为了理解上的方便,在下面的表述中,“本地应用”和“目标应用程序”表达的含义相同。为了解决WebApp直接使用安装在操作系统上的其他应用的功能的问题,本发明在WebApp的配置文件中新增一个配置项,代表将扩展一个JS接口并利用此接口调用本地应用的服务,使得WebApp能使用操作系统上已经安装的其他应用的功能。要扩展WebApp应用功能,使其不受WebApp框架以及终端浏览器的制约而能够使用操作系统上已经安装的其他应用的功能,首先需要在WebApp安装包的配置文件中增加一个字段,该字段包括一个扩展JS (JavaScript)函数名(“一个字符串”)和一个响应上述JS扩展函数请求的应用的地址,其中,响应上述JS扩展函数请求的应用的地址可以是本地应用的包名、类名或者系统协议。该JS函数名能够在实际的应用过程中把调用转发给应用程序,以实现WebApp应用功能的扩展。 图2示出了根据本发明实施例的扩展WebApp应用功能的方法流程示意图。如图2所示,具体的扩展WebApp应用功能的流程包括S210 :在WebApp的配置文件中或者以其他方式增加一个包含扩展JS函数和作为响应所述扩展JS函数请求的本地应用的地址的功能扩展字段,其中,作为“响应所述扩展JS函数请求的本地应用的地址”的可以是本地应用的包名、类名或者系统协议,用类名和系统协议处理流程和包名处理流程是一样的。本地应用包名(或者类名、系统协议)为响应扩展JS函数请求的本地应用的地址,即要扩展的目标应用程序的地址,扩展JS函数可以在配置文件中扩展,也可以以其他可能的手段扩展。S220 :通过调用上述扩展JS函数把函数的各个参数发送至浏览器内核;S230 =WebApp框架根据浏览器内核接收的调用消息把目标应用程序的地址设置为响应所述扩展JS函数请求的本地应用的地址(如以本地应用的包名表示的响应上述JS扩展函数请求的应用的地址);该调用消息包括JS函数调用时填写的参数,一次调用需要目标应用程序执行哪种业务,通过该参数就可以表示出来;S240 :根据本地应用的地址激活所述地址指定的目标应用程序;S250 :被激活的目标应用程序根据扩展JS函数的参数执行所述扩展JS函数,并把执行结果返回WebApp。其中,在步骤S220中,参数由业务逻辑决定,可以不需要参数,也可能需要。例如,在一个调整屏幕亮度的程序中,发给目标应用程序的参数就只需要一个,为一个代表亮度的百分比的小数,例如O. 65,代表把亮度调为65%。通过图2所示的流程可以看出,本发明扩展WebApp应用功能的关键是在WebApp安装包的配置文件中增加一个包括目标应用程序调用函数的字段(该字段可以被视为WebApp应用功能的扩展应用字段),该目标应用程序的地址为调用函数的包名(或者类名、系统协议)。这样,就可以通过扩展应用字段在已有的WebApp应用功能的基础上扩展一个JS接口并利用此接口调用本地应用的服务,使得WebApp能使用操作系统上已经安装的其他应用的功能。
具体地,作为示例,假设上述增加的功能扩展字段的字段名为“eXt_fUnCtion”,与这个字段对应的值为一个字符串数组,数组包含有两个值,一个为注册的扩展函数名,另一个为响应扩展函数调用的本地应用服务的地址字符串。注册的扩展函数名可以在WebApp的JavaScript (—种网页脚本代码)代码中使用。本地应用服务的地址字符串为响应这个JS扩展函数请求的应用的地址,例如在Android (安卓)系统上,使用包名作为地址,因为利用包名可以定位到一个Activity (有界面的服务)或Service (无界面的服务)等,由这些Activity或Service接收并处理WebApp通过浏览器发送过去的请求,发送方法可以利用Android平台提供的Intent (意图)技术。当Activity或Service处理完毕,将结果返回给WebApp,因此,就完成了一个WebApp的请求从浏览器传送到操作系统上其他应用并返回运行结果的流程。在WebApp内部中,通过〃ext_function〃字段扩展的JS函数与其他普通函数是相同的,可以将其当作一个普通函数使用。当调用这个扩展函数时,想传给本地应用的数据通过这个函数的参数进行传递。以下以安卓平台为例对本发明的扩展WebApp应用功能的方法做更为详细地介绍,其他平台实现方法类似,不同平台间的区别只在于消息在应用间的传递部分,比如Android的平台使用了 Intent, IOS的平台则可能就要使用UI Document Interaction Controller。本实施例利用在WebApp的配置文件中新增一个配置项,代表将扩展一个JS接口并利用此接口调用本地应用的服务,使得WebApp能使用操作系统上已经安装的其他应用的功能。下面分别对安装和运行两个阶段的具体应用进行详细说明。安装时WebApp在安装的过程中,当解析WebApp安装包的配置文件时,会检查是否有扩展JS至本地应用的字段,例如字段名为“exifunction”,若有这个字段,则在这个字段中获取该字段对应的值,并检测此值是否为一个长度为2的字符串数据,若是的话,则获取这两个字符串,其中一个字符串为扩展JS函数名,另外一个字符串为本地应用的包名。运行时的流程如图3所示I) WebApp打开运行的过程中,检测此WebApp的配置文件是否有“ext_function”字段,若有的话,则先在这个WebApp中注入一段JS代码,这段JS代码的作用是在JS的window作用域下新增一个函数,函数名为“ext_function”字段指定的函数名,并给这个自定义函数默认的实现被调用时把此函数的各个参数发送至浏览器内核。其中,虽然在配置文件中已经有预先配置好的“ext_fUnCti0n”字段,但JS引擎并不知道有,因此要先在WebApp中注入,以便让JS引擎知道。预先配置的“ext_fUnCti0n”字段中的扩展函数名只是一个扩展函数名字,也就只是一个字符串而已,而注入的这段JS代码的作用是让JS引擎认识这个JS函数名。2)当WebApp运行并调用到这个JS函数时,这个JS函数会把调用事件以及调用时的参数通知浏览器内核。3 )浏览器内核把这次调用消息通知WebApp框架。4)ffebApp框架利用Android系统提供的Intent进行组装。即把目标应用程序的地址设为包名,同时把函数调用时的参数填入Intent。其中,Intent类似于一个信使,目标应用程序能接收到该Intent,并把参数读出来。调用目标程序各个平台都有不同的接口,Android 平台使用 startActivity 函数。5)启动这个 Intent。6)操作系统根据Intent的信息,启动或者激活包名指定的Activity或Service。7)应用程序的Activity或Service取出Intent中各个的参数。8)根据参数处理这个Intent的请求,执行 Intent请求的服务。9)函数执行结束后,把结果设回给Intent。10) WebApp框架收到返回后的Intent11)从Intent中取出返回过来的运行结果。12)把运行结果作为JS函数返回值反馈到WebApp中。通过上述实施例可以看出,本发明提供的扩展WebApp应用功能的方法能够使得WebApp能使用浏览器以外其他安装在操作系统上的应用的功能。这使得WebApp的能力大大增加,具体表现在一些浏览器平台无法提供或者暂时未提供的功能,WebApp利用本地的应用就可以做到,因为它可以根据包名访问到已经实现了这些功用的应用并使用它们提供的功能。例如,对于HTML 5规定的一些新规范电池API、方向传感器等,若浏览器还没提供这样的功能,那么WebApp还是可以实现,因为它能使用其他安装在本地的具有这些功能的应用获取到电池的电量和当前方向传感器的数据。下面将以几个具体的应用实施例对本发明扩展WebApp应用功能的技术效果进行说明。实例一有道词典有两种方式的词库,一种是云端词库,一种是本地词库。所谓的本地词库,是指把词典下载到本地,使得有道词典在使用过程中能快速到找到单词,节省网络等待的时间,以及节省在云端查找单词的流量。一般本地词库都会很大,从几兆至几百兆不等。假设要实现一个英文阅读器的WebApp,该WebApp能让用户在看英文文章的过程中很方便的查找到某个单词对应的中文含义。然而,按现有的做法,只能是把用户想要查找的单词发送至服务器,等待服务器返回中文结果。然而,在GPRS环境或网速较差的时候,用户体验会很差,因为每查一个单词都需要经过漫长的等待。然而,使用本发明提供的扩展WebApp应用功能的方法,此阅读器WebApp就能够直接使用本地的有道词典,而有道词典通过读取本地词库快速找到对应单词的含义并立即返回给WebApp,由WebApp显示出来。此过程不需要流量,不需要网络等待,大大提高了用户的体验。实例二对于一些用WebApp实现的阅读器,有时想增加一个调整屏幕亮度的功能。然而,一般浏览器都不会提供调整屏幕亮度的JS接口给WebApp使用。但是,使用本发明提供的扩展WebApp应用功能的方法,可以让WebApp调用本地已经安装的一个调整屏幕亮度的应用的功能,让屏幕亮度变低。实例三对于一些对HTML标准实现不够完善的浏览器,若没实现Geolocation (地理位置)功能,那所有的WebApp均不能获取用户当前的位置信息。然而,使用本发明提供的扩展WebApp应用功能的方法,利用本地获取位置信息的应用计算出来的信息反馈给WebApp的JS, WebApp就能获取到用户当前的位置信息,实现HTML 5的Geolocation相同的功能。实例四使用本发明提供的扩展WebApp应用功能的方法,WebApp能打电话,发短信,启动
一个应用等。通过以上具体应用实施例,可以看出,使用本发明提供的扩展WebApp应用功能的方法,能够让WebApp具有跟原生的App具有完全相同的功能。与上述扩展WebApp应用功能的方法向对应,本发明还提供一种扩展WebApp应用功能的系统。图4示出了根据本发明实施例的扩展WebApp应用功能的系统的方框示意图,如图4所示,扩展WebApp应用功能的系统400包括功能扩展字段配置单元410、扩展函数调用单元420、本地应用锁定单元430、本地应用激活单元440和扩展函数执行单元450。
其中,功能扩展字段配置单元410用于在WebApp中增加一个包含扩展JS函数和作为响应扩展JS函数请求的本地应用的地址的功能扩展字段;扩展函数调用单元420用于调用所述述扩展JS函数,并通过所述调用把函数的各个参数发送至浏览器内核;本地应用锁定单元430用于根据浏览器内核接收的调用消息把目标应用程序的地址设置为响应所述扩展JS函数请求的本地应用的地址;本地应用激活单元440用于根据本地应用的地址激活所述地址指定的目标应用程序;扩展函数执行单元450用于通过被激活的目标应用程序根据扩展JS函数的参数执行所述扩展JS函数,并把执行结果返回WebApp。其中,功能扩展字段配置单元在WebApp的配置文件中增加功能扩展字段;以及,功能扩展字段配置单元以本地应用包名、类名或者系统协议作为响应扩展JS函数请求的本地应用的地址。如上参照图I和图2以示例的方式描述了根据本发明的扩展WebApp应用功能的方法和系统。但是,本领域技术人员应当理解,对于上述本发明所提出的本发明提供的扩展WebApp应用功能的方法和系统,还可以在不脱离本发明内容的基础上做出各种改进。因此,本发明的保护范围应当由所附的权利要求书的内容确定。
权利要求
1.一种扩展WebApp应用功能的方法,包括 在WebApp中增加一个包含扩展JS函数和作为响应所述扩展JS函数请求的本地应用的地址的功能扩展字段; 通过调用所述扩展JS函数把函数的各个参数发送至浏览器内核; WebApp框架根据浏览器内核接收的调用消息把本地应用程序的地址设置为响应所述扩展JS函数请求的本地应用的地址; 根据所述本地应用的地址激活所述地址指定的目标应用程序; 被激活的目标应用程序根据扩展JS函数的参数执行所述扩展JS函数,并把执行结果返回 WebApp。
2.如权利要求I所述的扩展WebApp应用功能的方法,其中, 所述目标应用程序提供的服务为有界面的服务或无界面的服务。
3.如权利要求I所述的扩展WebApp应用功能的方法,其中, 所述功能扩展字段被增加在WebApp的配置文件中。
4.如权利要求I所述的扩展WebApp应用功能的方法,其中, 所述调用消息包括JS函数调用时填写的参数,所述参数表示一次调用需要目标应用程序执行的业务。
5.如权利要求I所述的扩展WebApp应用功能的方法,其中, 以本地应用包名、类名或者系统协议作为所述响应扩展JS函数请求的本地应用的地址。
6.一种扩展WebApp应用功能的系统,包括 功能扩展字段配置单元,用于在WebApp中增加一个包含扩展JS函数和作为响应扩展JS函数请求的本地应用的地址的功能扩展字段; 扩展函数调用单元,用于调用所述扩展JS函数,并通过所述调用把函数的各个参数发送至浏览器内核; 本地应用锁定单元,用于根据浏览器内核接收的调用消息把目标应用程序的地址设置为响应所述扩展JS函数请求的本地应用的地址; 本地应用激活单元,用于根据本地应用的地址激活所述地址指定的目标应用程序;扩展函数执行单元,用于通过被激活的目标应用程序根据扩展JS函数的参数执行所述扩展JS函数,并把执行结果返回WebApp。
7.如权利要求6所述的扩展WebApp应用功能的系统,其中, 所述功能扩展字段配置单元在WebApp的配置文件中增加所述功能扩展字段。
8.如权利要求6所述的扩展WebApp应用功能的系统,其中, 所述功能扩展字段配置单元以本地应用包名、类名或者系统协议作为所述响应扩展JS函数请求的本地应用的地址。
全文摘要
本发明提供了一种扩展WebApp应用功能的方法和系统,其中的方法包括在WebApp中增加一个包含扩展JS函数和作为响应所述扩展JS函数请求的本地应用的地址的功能扩展字段;通过调用所述扩展JS函数把函数的各个参数发送至浏览器内核;WebApp框架根据浏览器内核接收的调用消息把本地应用程序的地址设置为响应所述扩展JS函数请求的本地应用的地址;根据所述本地应用的地址激活所述地址指定的目标应用程序;被激活的目标应用程序根据扩展JS函数的参数执行所述扩展JS函数,并把执行结果返回WebApp。本发明能够能让WebApp直接使用安装在操作系统上的其他应用的功能,扩展WebApp的能力。
文档编号G06F9/44GK102929638SQ20121044214
公开日2013年2月13日 申请日期2012年11月7日 优先权日2012年11月7日
发明者梁捷, 俞永福, 何小鹏, 朱顺炎, 马妙魁 申请人:广州市动景计算机科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1