利用外部应用程序改写浏览器弹出框的方法和装置的制作方法

文档序号:6374767阅读:270来源:国知局
专利名称:利用外部应用程序改写浏览器弹出框的方法和装置的制作方法
技术领域
本发明涉及移动通信技术领域,更为具体地,涉及一种利用外部应用程序改写浏览器弹出框的方法和装置。
背景技术
随着网络的兴起,各种WebApp (网络应用程序)绽放光彩,浏览器成为其中最闪耀的明星。各式各样基于浏览器的外部应用程序也纷纷呈现=Flash (网页展现动画的主要方式)、遨游(基于IE内核的应用程序),迅雷(为浏览器提供强力下载模块)等。而且,手机等便携式移动终端的普及应用也使得人们越来越多地使用无线接入终端接入网络来获取信息。与普通的PC接入终端不同的是,在手机等便携式移动终端利用浏览器进行网页浏览时,由于移动终端本身硬件条件(如存储空间、数据处理能力、屏显空间等)的限制,为了完善用户的应用体验,往往需要对浏览器的界面进行修改以便于用户更加友好地使用这些浏览器的外部应用程序。比如Flash会要求具有全屏模式,而不是在网页中显示一小块;遨游让鼠标右键支持手势,以便用户直接在屏幕上绘制线条;迅雷会在右键菜单增加迅雷下载的菜单项等。然而,外部应用程序要修改浏览器的界面,难度却是非常大的,这是因为浏览器较高的复杂度导致的。尤其是,在终端应用的浏览器有很多种,当一个应用程序需要对不同浏览器进行界面修改,难度又将大大增加。

发明内容
鉴于上述问题,本发明的目的是提供一种外部应用程序改写浏览器弹出框的方法及系统,通过改写少量浏览器Javascript接口以及外部应用程序自绘界面的方式实现浏览器界面的修改。根据本发明的一个方面,提供了一种外部应用程序改写浏览器弹出框的方法,包括监控并捕捉浏览器的Javascript引擎抛出的消息;将捕获到的消息传递给外部应用程序;中断所述捕获的Javascript引擎抛出的消息中需要所述外部应用程序修改浏览器界面的消息的传播处理,使得浏览器自身不进行与需要所述外部应用程序修改浏览器界面的消息相关的用户界面Π的重绘;由所述外部应用程序Javascript引擎抛出的消息自绘用户界面UI ;在所述外部应用程序完成所述用户界面Π的自绘之后,返回所述浏览器的Javascript引擎执行流程,让浏览器继续运转。其中,优选的方案是,在监控并捕捉浏览器的Javascript引擎抛出的消息之前,修改所述Javascript引擎的系统接口,以使得外部应用程序参与所述Javascript引擎抛出的消息的传播。
其中,优选的方案是,在中断所述外部应用程序要修改的浏览器界面的消息的传播处理之前,首先由外部应用程序解析所述捕获到的消息,分析是否包含有需要修改浏览器界面的消息,如果是,则中断所述捕获到的消息的传播;如果不是,则让所述捕获到的消息继续原本的传播。根据本发明的另一方面,提供了一种外部应用程序改写浏览器弹出框的装置,包括消息监控单元,用于监控并捕捉浏览器的Javascript引擎抛出的消息;消息传递单元,用于将捕获到的消息传递给外部应用程序;消息传播中断单元,用于中断所述捕获的Javascript引擎抛出的消息中需要所述外部应用程序修改浏览器界面的消息的传播处理,使得浏览器自身不进行与需要所述外部应用程序修改浏览器界面的消息相关的用户界面Π的重绘;
UI自绘单元,用于利用所述外部应用程序根据Javascript引擎抛出的消息自绘用户界面UI ;返回单元,用于在所述Π自绘单元完成用户界面Π自绘之后,返回所述浏览器的Javascript引擎执行流程,让浏览器继续运转。 其中,优选的方案是,该装置还包括系统接口修改单元,用于修改所述Javascript引擎的系统接口,以使得外部应用程序参与所述Javascript引擎抛出的消息的传播。其中,优选的方案是,该装置还包括消息解析单元,用于利用所述外部应用程序解析所述捕获到的消息,分析是否包含有需要修改浏览器界面的消息,如果是,则由所述消息传播中断单元中断所述捕获到的消息的传播;如果不是,则让所述捕获到的消息继续原本的传播。本发明提供的外部应用程序改写浏览器弹出框的方法和装置具有以下优点简单由于Javascript语言本身非常的简单,通过Javascript,对浏览器界面进行修改,就变得轻而易举。健壮因为Javascript引擎是浏览器的重要成分,跟浏览器自身的解析渲染紧密结合,借助Javascript引擎完成浏览器界面的调整,能大大提高程序的鲁棒性。兼容由于Javascript具有ECMA国际标准,在不同的浏览器上,其表现行为都是一致的,使得外部应用程序调整浏览器界面具有强大的兼容能力。为了实现上述以及相关目的,本发明的一个或多个方面包括后面将详细说明并在权利要求中特别指出的特征。下面的说明以及附图详细说明了本发明的某些示例性方面。然而,这些方面指示的仅仅是可使用本发明的原理的各种方式中的一些方式。此外,本发明旨在包括所有这些方面以及它们的等同物。


通过参考以下结合附图的说明及权利要求书的内容,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中图I为根据本发明的外部应用程序改写浏览器弹出框的方法流程图;图2为根据本发明实施例的外部应用程序、终端浏览器和Javascript引擎之间的信息交互过程示意图3为根据本发明实施例一的外部应用程序修改确认框的流程示意图;图4为根据本发明实施例二的外部应用程序修改右键菜单的流程示意图;图5为根据本发明实施例的外部应用程序改写浏览器弹出框的装置方框示意图。在所有附图中相同的标号指示相似或相应的特征或功能。
具体实施例方式在下面的描述中,出于说明的目的,为了提供对一个或多个实施例的全面理解,阐述了许多具体细节。然而,很明显,也可以在没有这些具体细节的情况下实现这些实施例。在其它例子中,为了便于描述一个或多个实施例,公知的结构和设备以方框图的形式示出。由于目前作为移动互联网载体的主要为手机,因此,在下面对比本发明具体实施方式
的表述中,“移动终端”、“手机”均是指用户访问移动互联网所使用的目标载体,同时可 以将“手机”理解为“移动终端”的一种但不是唯一的一种具体表现形式。但是,本发明不止适用于移动终端,而是能够适用于所有支持具有Javascript引擎的浏览器的终端。另外,本发明在对具体实施方式
进行表述时所用到的“外部应用程序”可以是基于UC浏览器、PC终端浏览器等任何浏览器的外部应用程序,这类外部应用程序对浏览器的依赖很强,可以是壳浏览器,如遨游,特征是包裹着浏览器核;可以是浏览器插件,如Flash、迅雷等,特征是被浏览器包裹着。如果没有特别的说明,通常意义上的用户所需要的基于终端浏览器应用程序都可以被视为本发明中所表述的外部应用程序。本发明的技术方案表述中,外部应用程序修改的浏览器弹出框,对于用户而言是能够增强用户体验的用户界面Π,因此,下文表述中所涉及的“浏览器弹出框”和“用户界面UI”所指相同,都是基于浏览器的外部应用程序用户交互窗口。为了便于用户更加友好地使用这些浏览器的外部应用程序,本发明通过改写少量浏览器Javascript接口,以及外部应用程序自绘界面的方式浏览器界面的修改。通过浏览器的Javascript引擎(嵌入在浏览器中的脚本语言)实现浏览器界面的修改,能够大大降低浏览器界面修改的复杂度,从而降低开发成本,更重要的是,Javascript引擎具有ECMA国际标准,这就使得不同浏览器兼容性问题不复存在。另外,通过浏览器的Javascript引擎,还可以很轻松的实现浏览器界面的修改,比如让丑陋的弹出框变得好看些;kalert框(浏览器信息框)具有标题;让文件上传可以同时选择多个文件等等。以下将结合附图对本发明的具体实施例进行详细描述。图I示出了根据本发明实施例的外部应用程序改写浏览器弹出框的方法流程。如图I所示,在利用外部应用程序改写浏览器弹出框的过程中,首先需要监控并捕捉浏览器的Javascript引擎抛出的消息(步骤S110);然后将捕获到的消息传递给外部应用程序(步骤S120);对于捕获的Javascript引擎抛出的消息中需要外部应用程序修改浏览器界面的消息,要中断该消息的传播处理,以使得浏览器自身不进行与需要所述外部应用程序修改浏览器界面的消息相关的用户界面Π的重绘(步骤S130);然后由外部应用程序进行改写浏览器弹出框的处理,也就是由外部应用程序根据Javascript引擎抛出的消息自绘用户界面Π (步骤S140),比如,弹出消息框、右键菜单之类的浏览器的外部应用程序用户交互窗口 ;在外部应用程序完成所述用户界面Π的自绘之后,返回所述浏览器的Javascript引擎执行流程,让浏览器继续运转(步骤S150)。具体地,在利用外部应用程序改写浏览器弹出框的过程中,外部应用程序、终端浏览器和Javascript引擎之间的信息交互过程如图2所示S210 :外部应用程序请求终端浏览器执行特定的Javascript代码;S220 :终端浏览器进行初始化时,运行该特定的Javascript代码;
S230 :外部应用程序对Javascript引擎抛出的消息进行监控;S240 :修改Javascript引擎的系统接口,使得消息传播流程具有更多的分支,让外部应用程序参与到这个流程中去;比如,如果要修改alert框,就需要先修改这个接口,取消浏览器自身对话框的弹出,而让外部程序弹出对话框;S250 :上述特定的Javascript代码运行完毕;S260 :外部应用程序完成对Javascript引擎抛出的消息的监控;其中,当Javascript引擎抛出消息时,由于之前对系统接口的修改,因此消息优先传播到外部应用程序。因此,当Javascript引擎抛出的消息包含有需要修改浏览器界面的消息时,外部应用程序中断该消息的传播处理,使浏览器自身不进行与需要外部应用程序进行修改浏览器界面的消息相关的用户界面Π的重绘,而由外部应用程序根据该消息自绘用户界面Π。需要说明的是,本发明的上述技术方案中,对系统接口的修改不是必须,在浏览器的Javascript引擎本身允许外部应用程序根据特定的消息进行消息传播流程的中断,进而参与到该流程中去,贝1J不必修改Javascript引擎的系统接口。如果浏览器的Javascript弓I擎本身不允许特定的消息的传播流程中断,则需要事先修改Javascript弓I擎的系统接口,以便中断正常的消息传播流程,让外部应用程序参与到这个流程中去。另外,用户还可以根据需求对系统允许修改的Javascript引擎的系统接口进行预先设置,自主确定对哪些Javascript引擎的系统接口进行修改,以避免随意、无度的接口修改,在一定限度内保障浏览器系统的稳定性。在终端浏览器初始化之后对Javascript引擎的系统接口的修改,可以在对消息进行监控之前进行,也可以在对消息进行监控之后进行,用户在浏览器运行的过程中也可以随时对系统接口的修改情况进行设置。图2中椭圆形虚线框部分示出了当Javascript引擎抛出的消息包含有需要修改浏览器界面的消息时外部应用程序的处理过程。其中,Javascript引擎抛出消息(步骤
52301),该消息中包含有需要修改浏览器界面的消息,外部应用程序中断消息的传播(步骤
52302),然后自绘用户界面Π(步骤S2303),自绘完毕,外部应用程序退出该消息的处理流程,将处理能力转交回浏览器(步骤S2304 )。其中,在本发明的一个优选实施方式中,夕卜部应用程序在监控Javascript引擎抛出的消息的过程中,会对捕获到的消息进行解析,分析是否包含有需要外部应用程序修改浏览器界面的消息,如果是,则中断消息的传播;如果不是,则让消息继续走下去,完成原本的流程。下面将以两个具体的实施例来对本发明的外部应用程序改写浏览器弹出框的方法进行更加具体的说明。实例一
确认框的修改方式修改确认框主要是通过修改Javascript引擎的window, confirm这个函数来实现的。将confirm函数替换为自定义的CONFIRM函数后,网页执行confirm时,将调度自定义的CONFIRM函数。在整个监控消息以及修改浏览器弹出框的过程中,会依次执行如图3所示的流程S301 Javascript引擎应网页要求弹出确认框confirm ;S302 Javascript引擎抛出弹出确认框的消息,即将confirm消息传递到外部应用程序。由于本发明提供的方法能够修改Javascript引擎的某些系统接口,因此,在监控 Javascript引擎抛出的消息的过程中,一旦发现Javascript引擎抛出有关弹出确认框的消息,就能够在Javascript引擎弹出确认框confirm的第一时间将其传递给外部应用程序;S303:外部应用程序分析消息后,确定需要自绘用户界面UI、修改浏览器界面,进行外部应用程序处理流程,具体包括S3031 :外部应用程序让浏览器假死。由于confirm具有堵塞(弹出确认框时,网页的其他部分不可使用)的特性,外部应用程序会让浏览器处于假死状态;S3032 :显示自绘的确认框;S3033 :对于显示的确认框,用户通过选择“确定”或者“取消”的方式关闭确认框;S3034 :激活浏览器;S3035 :将用户选择的结果(比如用户选择了“确定”)传递给Javascript引擎,让其继续走后续流程。其中,关键的Javascript代码如下所示
function UCWeb Confirm(msg)
{
top. U C WebThread Wa iti ng = true;
top · U C Web—Confi rmOk=false;
top.UCVVebNotifyi'confirmVmsg.toSiringO);
top. U C WebThreadWa iti ngU ntil=
top. I」C WebGetTli read Waiti ngTirne();
wh i!e( top. U C Web Th read Wa i ting)ifitop.UCWeb ThreadWaitingUntiKnew Date(J) break;return top.UCWeb_ConfirmOk;
}
wndovv.confirm = U C WebConfirm;
实例二修改右键菜单界面,调整右键菜单的菜单项,让其用户下载入口、关闭网页、查看网页源码的接口。修改右键菜单的过程如图4所示S401 Javascript引擎应网页要求弹出右键菜单;S402 Javascript引擎抛出弹出右键菜单的消息,即将弹出右键菜单的消息传递到外部应用程序。由于本发明提供的方法能够修改Javascript引擎的某些系统接口,因此,在监控Javascript引擎抛出的消息的过程中,一旦发现Javascript引擎抛出有关右键菜单弹出的消息,就能够在Javascript引擎抛出弹出右键菜单的消息的第一时间将其传递给外部应用程序;S403 :外部应用程序自绘右键菜单,提供右键菜单菜单项功能。
当用户选择右键菜单的某个菜单项时,外部应用程序即调用浏览器的对应接口,完成调用右键菜单功能,并向用户展现调用结果。其中,关键的Javascript代码如下所示
权利要求
1.一种外部应用程序改写浏览器弹出框的方法,包括 监控并捕捉浏览器的Javascript引擎抛出的消息; 将捕获到的消息传递给外部应用程序; 中断所述捕获的Javascript引擎抛出的消息中需要所述外部应用程序修改浏览器界面的消息的传播处理,使得浏览器自身不进行与需要所述外部应用程序修改浏览器界面的消息相关的用户界面UI的重绘; 由所述外部应用程序根据Javascript引擎抛出的消息自绘用户界面Π ; 在所述外部应用程序完成所述用户界面Π的自绘之后,返回所述浏览器的Javascript引擎执行流程,让浏览器继续运转。
2.如权利要求I所述的外部应用程序改写浏览器弹出框的方法,其中,在监控并捕捉浏览器的Javascript引擎抛出的消息之前, 修改所述Javascript引擎的系统接口,以使得外部应用程序参与所述Javascript引擎抛出的消息的传播。
3.如权利要求I所述的外部应用程序改写浏览器弹出框的方法,其中,在中断所述外部应用程序要修改的浏览器界面的消息的传播处理之前, 首先由外部应用程序解析所述捕获到的消息,分析是否包含有需要修改浏览器界面的消息,如果是,则中断所述捕获到的消息的传播;如果不是,则让所述捕获到的消息继续原本的传播。
4.一种外部应用程序改写浏览器弹出框的装置,包括 消息监控单元,用于监控并捕捉浏览器的Javascript引擎抛出的消息; 消息传递单元,用于将捕获到的消息传递给外部应用程序; 消息传播中断单元,用于中断所述捕获的Javascript引擎抛出的消息中需要所述外部应用程序修改浏览器界面的消息的传播处理,使得浏览器自身不进行与需要所述外部应用程序修改浏览器界面的消息相关的用户界面Π的重绘; UI自绘单元,用于利用所述外部应用程序根据Javascript引擎抛出的消息自绘用户界面UI ; 返回单元,用于在所述Π自绘单元完成用户界面Π自绘之后,返回所述浏览器的Javascript引擎执行流程,让浏览器继续运转。
5.如权利要求4所述的外部应用程序改写浏览器弹出框的装置,还包括 系统接口修改单元,用于修改所述Javascript引擎的系统接口,以使得外部应用程序参与所述Javascript引擎抛出的消息的传播。
6.如权利要求4所述的外部应用程序改写浏览器弹出框的装置,还包括 消息解析单元,用于利用所述外部应用程序解析所述捕获到的消息,分析是否包含有需要修改浏览器界面的消息,如果是,则由所述消息传播中断单元中断所述捕获到的消息的传播;如果不是,则让所述捕获到的消息继续原本的传播。
全文摘要
本发明提供了一种外部应用程序改写浏览器弹出框的方法和装置,其中的方法包括监控并捕捉浏览器的Javascript引擎抛出的消息;将捕获到的消息传递给外部应用程序;中断捕获的Javascript引擎抛出的消息中需要所述外部应用程序修改浏览器界面的消息的传播处理,使得浏览器自身不进行与需要所述外部应用程序修改浏览器界面的消息相关的用户界面UI的重绘;由外部应用程序Javascript引擎抛出的消息自绘用户界面UI;在外部应用程序完成用户界面UI的自绘之后,返回浏览器的Javascript引擎执行流程,让浏览器继续运转。本发明能够克服浏览器的兼容性问题,并且让浏览器界面的修改更加简单化。
文档编号G06F9/44GK102830971SQ201210284490
公开日2012年12月19日 申请日期2012年8月6日 优先权日2012年8月6日
发明者俞永福, 何小鹏, 朱顺炎, 黄伟忠, 陈德志, 梁延俊, 王欣, 李小龙 申请人:优视科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1