一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种浏览器引擎的切换方法和装置及设备与流程

2021-11-03 14:47:00 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种浏览器引擎的切换方法和装置及设备。


背景技术:

2.浏览器引擎,又称为浏览器内核、排版引擎、渲染引擎等,是一套处理标记语言,例如超文本标记语言(hyper text markup language,html)、可扩展标记语言(extensible markup language,xml)、可扩展样式语言(extensible stylesheet language,xsl)、图片文件等,和处理格式化信息,例如层叠样式表(cascading style sheets,css)等,并且进行内容展现的应用软件组件。此外,由于目前javascript语言的广泛使用,浏览器引擎一般还会同时包括javascript引擎,其中,javascript引擎是一个专门处理javascript脚本的虚拟机。
3.现有技术中存在多个浏览器引擎,不同的浏览器引擎存在不同的优缺点,只使用单一的浏览器无法满足用户的全部使用需求,但是现有技术的浏览器只使用指定的一个浏览器引擎,对网页的兼容性较差,用户若想使用其他的浏览器引擎,只能打开其他浏览器,操作较为繁琐。


技术实现要素:

4.本发明提供一种浏览器引擎的切换方法和装置及设备,解决现有技术的浏览器只能使用单一的浏览器,无法满足用户的使用需求,且对网页的兼容性较差,操作较为繁琐的问题。
5.第一方面,本发明提供一种浏览器引擎的切换方法,应用于客户端设备,该方法包括:
6.使用第一浏览器引擎渲染显示浏览器页面;
7.触发向第二浏览器引擎切换时,保存所述浏览器页面的统一资源定位器url地址;
8.调用所述第二浏览器引擎的视图接口,生成用于渲染显示浏览器页面的视图对象;
9.根据所述url地址加载所述浏览器页面的源文件,并利用所述视图对象,重新渲染显示所述浏览器页面。
10.可选地,生成用于渲染显示浏览器页面的视图对象之后,所述方法还包括:
11.调用所述第二浏览器引擎的回调接口,生成用于监听浏览器页面在运行过程中生成的事件的回调对象。
12.可选地,重新渲染显示所述浏览器页面之后,所述方法还包括:
13.确定所述第一浏览器引擎的数据存储接口和所述第二浏览器引擎的数据存储接口,存储数据的格式和/或存储路径不同时,对预先记录的所述第一浏览器引擎的存储操作进行同步;
14.确定所述第二浏览器引擎存储数据时,记录所述第二浏览器引擎的存储操作;
15.其中,所述存储操作包括对待存储数据进行处理及存储到对应路径的操作。
16.可选地,触发向第二浏览器引擎切换,包括:
17.监测到浏览器异常且异常原因为浏览器引擎异常时,触发将当前使用的所述第一浏览器引擎切换为任一当前未使用的第二浏览器引擎;或者
18.响应于用户的引擎切换请求,触发将当前使用的所述第一浏览器引擎,切换为所述引擎切换请求中指示的第二浏览器引擎。
19.可选地,所述引擎切换请求采用如下任一方式触发,包括:
20.确定当前使用的所述第一浏览器引擎,无法正常显示浏览器页面时,显示切换浏览器引擎的询问信息,响应于用户对所述询问信息的操作,触发引擎切换请求;或者
21.响应于用户对设置界面的浏览器引擎的选择操作,触发引擎切换请求。
22.可选地,所述视图接口采用如下任一方式实现:
23.当所述第二浏览器引擎为所述客户端设备使用的系统的标准浏览器引擎时,将所述系统的标准视图接口作为所述视图接口;
24.当所述第二浏览器引擎不是所述标准浏览器引擎时,在与所述标准视图接口无关的目录下,建立与实现所述标准视图接口的程序单元相同的程序单元,作为所述视图接口;或
25.当所述第二浏览器引擎不是所述标准浏览器引擎时,采用接口层逻辑代码,实现所述第二浏览器引擎对所述标准视图接口的调用功能。
26.可选地,使用第一浏览器引擎渲染显示浏览器页面之前,所述方法还包括:
27.接收到启动浏览器的启动请求;
28.确定请求启动的浏览器引擎为标准浏览器引擎时,利用初始化的所述标准浏览器引擎,加载默认页面;
29.确定请求启动的浏览器引擎不是标准浏览器引擎,且所述请求启动的浏览器引擎的依赖库不存在时,下载所述依赖库,并根据所述依赖库初始化所述请求启动的浏览器引擎,加载默认页面;
30.确定请求启动的浏览器引擎不是标准浏览器引擎,且所述请求启动的浏览器引擎的依赖库存在时,根据所述依赖库初始化所述请求启动的浏览器引擎,加载默认页面。
31.第二方面,本发明提供一种浏览器引擎的切换设备,包括存储器和处理器,其中:
32.所述存储器用于存储计算机程序;
33.所述处理器用于读取所述存储器中的程序并执行如下步骤:
34.使用第一浏览器引擎渲染显示浏览器页面;
35.触发向第二浏览器引擎切换时,保存所述浏览器页面的统一资源定位器url地址;
36.调用所述第二浏览器引擎的视图接口,生成用于渲染显示浏览器页面的视图对象;
37.根据所述url地址加载所述浏览器页面的源文件,并利用所述视图对象,重新渲染显示所述浏览器页面。
38.可选地,生成用于渲染显示浏览器页面的视图对象之后,所述处理器还用于:
39.调用所述第二浏览器引擎的回调接口,生成用于监听浏览器页面在运行过程中生
成的事件的回调对象。
40.可选地,重新渲染显示所述浏览器页面之后,所述处理器还用于:
41.确定所述第一浏览器引擎的数据存储接口和所述第二浏览器引擎的数据存储接口,存储数据的格式和/或存储路径不同时,对预先记录的所述第一浏览器引擎的存储操作进行同步;
42.确定所述第二浏览器引擎存储数据时,记录所述第二浏览器引擎的存储操作;
43.其中,所述存储操作包括对待存储数据进行处理及存储到对应路径的操作。
44.可选地,所述处理器触发向第二浏览器引擎切换,包括:
45.监测到浏览器异常且异常原因为浏览器引擎异常时,触发将当前使用的所述第一浏览器引擎切换为任一当前未使用的第二浏览器引擎;或者
46.响应于用户的引擎切换请求,触发将当前使用的所述第一浏览器引擎,切换为所述引擎切换请求中指示的第二浏览器引擎。
47.可选地,所述引擎切换请求采用如下任一方式触发,包括:
48.确定当前使用的所述第一浏览器引擎,无法正常显示浏览器页面时,显示切换浏览器引擎的询问信息,响应于用户对所述询问信息的操作,触发引擎切换请求;或者
49.响应于用户对设置界面的浏览器引擎的选择操作,触发引擎切换请求。
50.可选地,所述视图接口采用如下任一方式实现:
51.当所述第二浏览器引擎为所述客户端设备使用的系统的标准浏览器引擎时,将所述系统的标准视图接口作为所述视图接口;
52.当所述第二浏览器引擎不是所述标准浏览器引擎时,在与所述标准视图接口无关的目录下,建立与实现所述标准视图接口的程序单元相同的程序单元,作为所述视图接口;或
53.当所述第二浏览器引擎不是所述标准浏览器引擎时,采用接口层逻辑代码,实现所述第二浏览器引擎对所述标准视图接口的调用功能。
54.可选地,使用第一浏览器引擎渲染显示浏览器页面之前,所述处理器还用于:
55.接收到启动浏览器的启动请求;
56.确定请求启动的浏览器引擎为标准浏览器引擎时,利用初始化的所述标准浏览器引擎,加载默认页面;
57.确定请求启动的浏览器引擎不是标准浏览器引擎,且所述请求启动的浏览器引擎的依赖库不存在时,下载所述依赖库,并根据所述依赖库初始化所述请求启动的浏览器引擎,加载默认页面;
58.确定请求启动的浏览器引擎不是标准浏览器引擎,且所述请求启动的浏览器引擎的依赖库存在时,根据所述依赖库初始化所述请求启动的浏览器引擎,加载默认页面。
59.第三方面,本发明提供一种浏览器引擎的切换装置,包括:
60.第一显示单元,用于使用第一浏览器引擎渲染显示浏览器页面;
61.地址保存单元,用于触发向第二浏览器引擎切换时,保存所述浏览器页面的统一资源定位器url地址;
62.对象生成单元,用于调用所述第二浏览器引擎的视图接口,生成用于渲染显示浏览器页面的视图对象;
63.第二显示单元,用于根据所述url地址加载所述浏览器页面的源文件,并利用所述视图对象,重新渲染显示所述浏览器页面。
64.可选地,生成用于渲染显示浏览器页面的视图对象之后,所述对象生成单元还用于:
65.调用所述第二浏览器引擎的回调接口,生成用于监听浏览器页面在运行过程中生成的事件的回调对象。
66.可选地,重新渲染显示所述浏览器页面之后,所述第二显示单元还用于:
67.确定所述第一浏览器引擎的数据存储接口和所述第二浏览器引擎的数据存储接口,存储数据的格式和/或存储路径不同时,对预先记录的所述第一浏览器引擎的存储操作进行同步;
68.确定所述第二浏览器引擎存储数据时,记录所述第二浏览器引擎的存储操作;
69.其中,所述存储操作包括对待存储数据进行处理及存储到对应路径的操作。
70.可选地,所述地址保存单元触发向第二浏览器引擎切换,包括:
71.监测到浏览器异常且异常原因为浏览器引擎异常时,触发将当前使用的所述第一浏览器引擎切换为任一当前未使用的第二浏览器引擎;或者
72.响应于用户的引擎切换请求,触发将当前使用的所述第一浏览器引擎,切换为所述引擎切换请求中指示的第二浏览器引擎。
73.可选地,所述引擎切换请求采用如下任一方式触发,包括:
74.确定当前使用的所述第一浏览器引擎,无法正常显示浏览器页面时,显示切换浏览器引擎的询问信息,响应于用户对所述询问信息的操作,触发引擎切换请求;或者
75.响应于用户对设置界面的浏览器引擎的选择操作,触发引擎切换请求。
76.可选地,所述视图接口采用如下任一方式实现:
77.当所述第二浏览器引擎为所述客户端设备使用的系统的标准浏览器引擎时,将所述系统的标准视图接口作为所述视图接口;
78.当所述第二浏览器引擎不是所述标准浏览器引擎时,在与所述标准视图接口无关的目录下,建立与实现所述标准视图接口的程序单元相同的程序单元,作为所述视图接口;或
79.当所述第二浏览器引擎不是所述标准浏览器引擎时,采用接口层逻辑代码,实现所述第二浏览器引擎对所述标准视图接口的调用功能。
80.可选地,使用第一浏览器引擎渲染显示浏览器页面之前,所述第一显示单元还用于:
81.接收到启动浏览器的启动请求;
82.确定请求启动的浏览器引擎为标准浏览器引擎时,利用初始化的所述标准浏览器引擎,加载默认页面;
83.确定请求启动的浏览器引擎不是标准浏览器引擎,且所述请求启动的浏览器引擎的依赖库不存在时,下载所述依赖库,并根据所述依赖库初始化所述请求启动的浏览器引擎,加载默认页面;
84.确定请求启动的浏览器引擎不是标准浏览器引擎,且所述请求启动的浏览器引擎的依赖库存在时,根据所述依赖库初始化所述请求启动的浏览器引擎,加载默认页面。
85.第四方面,本发明提供一种计算机程序介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面提供的一种浏览器引擎的切换方法的步骤。
86.本发明提供的一种浏览器引擎的切换方法和装置及设备,具有以下有益效果:
87.可以实现在同一浏览器中对多个浏览器引擎的切换,提升浏览器对网页的兼容性,尽可能的满足用户对浏览器的使用需求,提升用户体验。
附图说明
88.图1为本发明实施例提供的一种浏览器引擎的切换方法的应用场景的示意图;
89.图2为本发明实施例提供的一种浏览器引擎的切换方法的流程图;
90.图3为本发明实施例提供的一种初始化浏览器引擎的流程图;
91.图4为本发明实施例提供的一种设置界面的示意图;
92.图5为本发明实施例提供的一种浏览器引擎的示意图;
93.图6为本发明实施例提供的一种浏览器引擎的切换方法的实施方式的流程图;
94.图7为本发明实施例提供的一种浏览器引擎的切换设备的示意图;
95.图8为本发明实施例提供的一种浏览器引擎的切换装置的示意图。
具体实施方式
96.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,并不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
97.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
98.以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
99.在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,另外,在本技术实施例的描述中,“多个”是指两个或多于两个,其它量词与之类似应当理解,此处所描述的优选实施例仅用于说明和解释本技术,并不用于限定本技术,并且在不冲突的情况下,本技术的实施例及实施例中的特征可以相互组合。
100.以下,对本发明实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
101.(1)本发明实施例中术语“应用程序接口(application programming interface,api)”,是一些预先定义的接口,或指软件系统不同组成部分衔接的约定,用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工
作机制的细节。
102.(2)本发明实施例中术语“超文本5(hypertext markup language 5,html5)”,是互联网的下一代标准,是构建以及呈现互联网内容的一种描述方式,被认为是互联网的核心技术之一。
103.(3)本发明实施例中术语“内存泄漏(memory leak)”,是指程序中已动态分配的堆内存,由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢,甚至系统崩溃等。
104.(4)本发明实施例中术语“欧洲计算机制造商协会脚本程序6(european computer manufacturers association,ecmascript 6)”,简称es6,又被称为ecmascript 2015,是javascript语言的下一代标准。
105.(5)本发明实施例中术语“首选项(preference)”,提供一种轻量级的数据,例如数据较少的配置信息的存取方法,以键值对的方式将数据保存在一个xml配置文件中。
106.(6)本发明实施例中术语“统一资源定位器(uniform resource locator,url)地址”,是www的统一资源定位标志,指网络地址。
107.(7)本发明实施例中术语“小型文本文件(cookie/cookies)”,指暂时或永久储存在用户本地终端上的数据。
108.(8)本发明实施例中术语“网页存储(web storage)”,一种在cookie之外存储会话数据的途径、存储大量可以跨会话存在的数据的机制。
109.(9)本发明实施例中术语“浏览器标识(user agent,ua)”,可以使得服务器能够识别客户使用的操作系统及版本、cpu类型、浏览器及版本、浏览器引擎、浏览器语言、浏览器插件,从而判断用户是使用电脑浏览还是手机浏览,让网页作出自动的适应。
110.(10)本发明实施例中术语“浏览器引擎的碎片化问题”,是指当不同版本的安卓android系统使用不同版本的浏览器引擎加载同一网页时,会出现各种不同的结果的问题。
111.现有技术中存在多个浏览器引擎,例如,安卓android系统的标准浏览器引擎——谷歌浏览器引擎(渲染引擎blink和javascript引擎v8)、x5浏览器引擎、火狐浏览器引擎(渲染引擎gecko和javascript引擎tracemonkey)等,不同的浏览器引擎存在不同的优缺点,以上述谷歌浏览器引擎和x5浏览器引擎为例:上述谷歌浏览器引擎对html5的较差、存在内存泄漏等问题,而且,上述谷歌浏览器引擎是由谷歌google以谷歌移动服务安卓应用程序包(googlemobile service android application package,gms apk)的方式提供的,开发者无法进行修改优化;上述x5浏览器引擎相比上述谷歌浏览器引擎具有如下优势:(1)网页打开速度有至少30%的提升;(2)使用云端优化技术,使流量至少节省20%;(3)可以在24小时内修复安全问题;(4)经过亿级用户的使用考验,崩溃crash率低于0.15%;(5)无浏览器引擎的碎片化问题,兼容性问题更少;(6)支持夜间模式、适屏排版、字体设置等浏览功能;(7)对html5、es6的支持更完整;(8)支持的视频格式、文件格式更多;(9)开源,开发者可以进行修改优化。
112.但是如果想要在只配置了上述谷歌浏览器引擎的浏览器上使用上述x5浏览器引擎,需要在浏览器上下载x5浏览器引擎,且下载之后只能使用上述x5浏览器引擎,但是,只使用单一的浏览器无法满足用户的全部使用需求,用户也有使用上述谷歌浏览器引擎的需求。现有技术的浏览器只使用指定的一个浏览器引擎,对网页的兼容性较差,用户若想使用
其他的浏览器引擎,只能打开其他浏览器,操作较为繁琐。
113.鉴于相关技术的浏览器存在的上述问题,本技术提出一种浏览器引擎的切换方法和装置及设备。
114.下面结合附图对本技术实施例中的一种浏览器引擎的切换方法和装置及设备进行详细说明。
115.实施例1
116.如图1所示,本发明实施例提供一种浏览器引擎的切换方法的应用场景的示意图,包括:
117.客户端设备101,用于使用第一浏览器引擎渲染显示浏览器页面;触发向第二浏览器引擎切换时,保存上述浏览器页面的统一资源定位器url地址;调用上述第二浏览器引擎的视图接口,生成用于渲染显示浏览器页面的视图对象;根据上述url地址加载上述浏览器页面的源文件,并利用上述视图对象,重新渲染显示上述浏览器页面。
118.服务器102,用于向上述客户端设备101发送上述url地址对应的上述浏览器页面的源文件。
119.上述客户端设备与上述服务器之间通过网络进行通信连接,该网络可以为局域网、广域网等。
120.上述客户端设备可以为便捷设备(例如:手机、平板、笔记本电脑等),也可以为个人电脑(pc,personal computer),即,上述浏览器引擎的切换方法可以应用到pc设备和/或移动端设备。
121.作为一种可选的实施方式,上述浏览器引擎的切换方法应用于使用安卓android系统的移动端设备。
122.上述服务器可以为任何能够提供互联网服务的设备。
123.用户通过上述客户端设备中安装的客户端与上述服务器进行数据交互,其中,上述客户端可以为网页的浏览器,也可以为安装于移动用户设备,如手机,平板电脑等中的浏览器客户端。
124.需要说明的是,上述应用场景仅是对本发明实施例中一种可能的实施方式的说明,并不对本发明实施例产生限定,相反,本技术的实施方式可以应用于适用的任何场景,且上述应用场景可以根据具体的实施情况进行实体的增减、删改。
125.本发明实施例提供一种浏览器引擎的切换方法的流程图,如图2所示,包括:
126.步骤s201,使用第一浏览器引擎渲染显示浏览器页面;
127.上述第一浏览器指浏览器当前使用的浏览器引擎,具体可以为任意类型的浏览器引擎,例如,谷歌浏览器引擎、x5浏览器引擎、火狐浏览器引擎等,本发明实施例对此不进行任何限定。
128.上述浏览器页面可以是一个或多个,本发明实施例对此不进行任何限定。
129.步骤s202,触发向第二浏览器引擎切换时,保存所述浏览器页面的统一资源定位器url地址;
130.上述第二浏览器指浏览器当前未使用的任一浏览器引擎,例如,当前使用浏览器引擎a,未使用浏览器引擎b、浏览器引擎c、浏览器引擎d,上述第二浏览器可以为上述浏览器引擎b、浏览器引擎c、浏览器引擎d中的任一浏览器引擎,具体可以为任意类型的浏览器
引擎,例如,谷歌浏览器引擎、x5浏览器引擎、火狐浏览器引擎等,本发明实施例对此不进行任何限定。
131.保存上述一个或多个浏览器页面的url地址。
132.步骤s203,调用所述第二浏览器引擎的视图接口,生成用于渲染显示浏览器页面的视图对象;
133.在调用上述视图接口之前,初始化上述第二浏览器引擎。
134.上述第二浏览器引擎的视图接口为预先定义好的视图接口。
135.根据上述第二浏览器引擎的配置信息,实例化上述第二浏览器引擎的页面视图。
136.实例化上述第二浏览器引擎的页面视图是指:调用上述第二浏览器引擎的视图接口,生成一个占用一定内存区域的对象,该对象可以在使用android系统或其他系统的应用程序中展示浏览器页面的一个区域。
137.上述视图对象还用于接收用户在上述浏览器页面的输入。
138.步骤s204,根据所述url地址加载所述浏览器页面的源文件,并利用所述视图对象,重新渲染显示所述浏览器页面。
139.浏览器使用标签页管理单个浏览器页面视图的加载,记录上述浏览器页面的url,在浏览器引擎的配置发生变更时,通知每个标签页,重新实例化页面视图,并触发实例化后的页面视图加载记录的url,可以保证切换浏览器引擎的同时,不丢失浏览器页面。
140.上述标签页包括浏览器url地址、浏览器页面显示区域及实例化的回调类。
141.需要说明的是,浏览器使用的是初始化后的第一浏览器引擎/第二浏览器引擎,在一种可能的实施方式中,使用第一浏览器引擎渲染显示浏览器页面之前,还包括:
142.接收到启动浏览器的启动请求;
143.确定请求启动的浏览器引擎为标准浏览器引擎时,利用初始化的上述标准浏览器引擎,加载默认页面;
144.确定请求启动的浏览器引擎不是标准浏览器引擎,且上述请求启动的浏览器引擎的依赖库不存在时,下载上述依赖库,并根据上述依赖库初始化上述请求启动的浏览器引擎,加载默认页面;
145.确定请求启动的浏览器引擎不是标准浏览器引擎,且上述请求启动的浏览器引擎的依赖库存在时,根据上述依赖库初始化上述请求启动的浏览器引擎,加载默认页面。
146.上述启动请求可以通过用户对浏览器图标的操作触发,例如点击上述浏览器图标,或通过用户对上述客户端设备的硬件的操作触发,例如连续多次按压预设按键等,或通过语音方式或姿态方式触发,本发明实施例对此不进行任何限定。
147.上述标准浏览器引擎为上述客户端设备使用的系统的默认浏览器引擎,例如android系统默认使用的谷歌浏览器引擎。
148.上述标准浏览器引擎在上述系统中作为系统服务存在,在初始化上述系统时,初始化上述默认浏览器引擎,并且在启动上述默认浏览器引擎时不需要再次初始化上述默认浏览器引擎,只需要实例化上述默认浏览器引擎的页面视图。
149.非标准浏览器引擎使用动态加载技术实现,由上述客户端设备中所有依赖上述非标准浏览器引擎的应用共用,其初始化分为下载和加载两个部分:(1)下载:确定请求启动上述非标准浏览器引擎时,检测上述非标准浏览器引擎的依赖库是否存在,确认上述依赖
库不存在时,下载上述依赖库。(2)加载:在切换到上述非标准浏览器引擎之后,进行初始化的加载流程,拉起底层服务。
150.上述依赖库,又叫做底层支持库,是实现上述浏览器引擎的具体代码,包括渲染引擎和javascript引擎,在安卓android系统上一般以so库的形式存在,负责具体的网页渲染和javascript脚本的运行。
151.如图3所示,本发明实施例提供一种初始化浏览器引擎的流程图,包括:
152.步骤s301,接收到启动浏览器的启动请求;
153.步骤s302,判断请求启动的浏览器引擎是否为标准浏览器引擎,若是,执行步骤s303,否则,执行步骤s304;
154.步骤s303,利用初始化的上述标准浏览器引擎,加载默认页面,流程结束;
155.步骤s304,判断请求启动的浏览器引擎的依赖库是否存在,若存在,执行步骤s306,否则,执行步骤s305;
156.步骤s305,下载上述依赖库,执行步骤s306;
157.步骤s306,根据上述依赖库初始化上述请求启动的浏览器引擎,加载默认页面,流程结束。
158.加载上述非标准浏览器引擎,可以保证后续浏览器页面载入的流畅性。
159.通过如下任一实施方式触发向第二浏览器引擎切换:
160.监测到浏览器异常且异常原因为浏览器引擎异常时,触发将当前使用的上述第一浏览器引擎切换为任一当前未使用的第二浏览器引擎;或者
161.响应于用户的引擎切换请求,触发将当前使用的上述第一浏览器引擎,切换为上述引擎切换请求中指示的第二浏览器引擎。
162.其中,上述引擎切换请求采用如下任一方式触发,包括:
163.确定当前使用的上述第一浏览器引擎,无法正常显示浏览器页面时,显示切换浏览器引擎的询问信息,响应于用户对上述询问信息的操作,触发引擎切换请求;或者
164.响应于用户对设置界面的浏览器引擎的选择操作,触发引擎切换请求。
165.在浏览器设置界面添加切换入口,供用户选择,并通过系统的preference机制进行保存,提供配置浏览器引擎的功能。
166.如图4所示,本发明实施例提供一种设置界面的示意图。
167.上述设置界面包括浏览器标识(ua)的选择触发图标、启动时打开上次未关闭网页的第一滑动选择图标、左右滑动前进后退的第二滑动选择图标、浏览器引擎的选择触发图标。
168.点击上述浏览器引擎的选择触发图标之后,页面显示可选择的浏览器引擎图标,如上述图4所示,显示谷歌浏览器引擎图标和x5浏览器引擎图标,供用户选择;被选择的浏览器引擎图标会显示标记,如上述图4所示,谷歌浏览器图标被选择,显示对号标记。
169.需要说明的是,上述设置界面是本发明实施例对设置界面的一种举例说明,设置界面的形式可以根据具体的实施情况进行具体的设置,例如对设置界面的设置选项的增减、对设置界面具体形式的改变等,本发明实施例对此不进行任何限定。
170.本发明实施例通过如下两种实施方式,自动识别切换浏览器引擎的场景:
171.实施方式1:异常识别:
172.以上述谷歌浏览器和x5浏览器引擎为例,谷歌浏览器引擎有过升级官方版本后,引入异常无法运行的情况,x5浏览器引擎也可能在运行时出现异常。
173.添加应用异常检测,监测到浏览器异常且异常原因为浏览器引擎异常时,例如,异常信息包括浏览器引擎在java接口层的包名信息时,触发将当前使用的上述第一浏览器引擎切换为任一当前未使用的第二浏览器引擎,保证用户可以正常使用浏览器。
174.实施方式2:支持情况识别:
175.以上述谷歌浏览器和x5浏览器引擎为例,x5浏览器引擎支持部分特殊的标签及属性,例如,对于video标签,x5浏览器引擎扩展了x5

video

player

type属性,用于控制页面内嵌的视频的播放方式,上述属性在html标准中是不存在的,因此谷歌浏览器引擎无法提供对上述特殊的标签及属性的支持。
176.确定当前使用的上述第一浏览器引擎,无法正常显示浏览器页面时,显示切换浏览器引擎的询问信息,响应于用户对上述询问信息的操作,触发引擎切换请求。
177.例如,对于兼容性较差的网页,在刷新失败时,提示用户切换引擎尝试。
178.通过跟踪内核控制台信息回调,检测当前使用的上述第一浏览器引擎,是否可以正常显示浏览器页面。
179.上述内核控制台信息可以输出浏览器页面javascript脚本生成的log,以及兼容性异常,并结合对常见网站在不同浏览器引擎下的log分析,可以针对性地切换浏览器引擎。
180.上述回调指浏览器页面生成一条内核控制台信息。
181.作为一种可选的实施方式,上述视图接口采用如下任一方式实现:
182.当上述第二浏览器引擎为上述客户端使用的系统的标准浏览器引擎时,将上述系统的标准视图接口作为上述视图接口;
183.当上述第二浏览器引擎不是上述标准浏览器引擎时,在与上述标准视图接口无关的目录下,建立与实现上述标准视图接口的程序单元相同的程序单元,作为上述视图接口;或
184.当上述第二浏览器引擎不是上述标准浏览器引擎时,采用接口层逻辑代码,实现上述第二浏览器引擎对上述标准视图接口的调用功能。
185.需要说明的是,android系统标准接口规范中提供了webview控件及其关联类作为支持网页加载的基础接口,基于上述接口可以实现完整的浏览器功能,webview底层基于谷歌浏览器chromium内核实现。
186.上述关联类指的是同在android.webkit包下的工具类,用来定制webview的功能替换默认实现,例如android.webkit.cookiemanager用来提供cookie管理的功能,替换webview的默认实现。
187.x5浏览器引擎提供了类似上述webview控件的接口,也可以支撑完整的浏览器功能。
188.采用如下实施方式实现引擎接口适配层定义:
189.由于标准浏览器引擎,即android系统webview的相关接口已涵盖了支撑完整的浏览器功能所需的接口,因此,直接定义适配层的接口与android系统webview相关接口的子类和方法名一一对应,但配置为独立的包以进行区分。
190.上述配置为独立的包,指将处理同一方面问题的类放在同一个目录下,以便于管理。
191.对后续可能引入的其他浏览器引擎,在无法一一对应时,由接口层进行封装,并实现目前的对外接口功能。
192.上述封装指通过添加接口层逻辑代码,使接口层在接入任何浏览器引擎实现时,提供的对外接口都是一致的。
193.如图5所示,本发明实施例提供一种浏览器引擎的示意图,包括:
194.应用层501,用于实现与用户交互,接收用户输入,并渲染显示浏览器页面;
195.接口层502,用于封装浏览器引擎的具体实现,并将浏览器引擎提供的具体功能合并为和上述应用层501业务对应的接口,隔离浏览器引擎的具体实现;管理当前使用的浏览器引擎,在切换浏览器引擎时,触发旧浏览器引擎的结束和资源回收功能,及新浏览器引擎的初始化功能。
196.接口层和标准浏览器引擎的标准接口进行一一对应匹配。
197.上述接口层502包括:
198.视图接口502

1,用于提供一个继承自android视图的类,可以加入到android应用的显示区域,并在其中展示页面的渲染结果;
199.回调接口502

2,用于监听浏览器网页在运行中生成的事件,以使应用层针对具体的事件进行处理;
200.数据存储接口502

3,用于管理网页浏览中生成的数据,例如网站通过cookie,webstorage等网页标准存储的数据,用户浏览过程对应的历史记录,以及用户主动存储的书签。
201.设置接口502

4,用于存储浏览器开放的定制项对应的用户的使用偏好,例如,加载浏览器页面时使用原始尺寸还是缩放到可在一屏内显示,浏览网页过程中是否存储浏览历史,浏览网页过程中是否允许网页定位等。
202.需要说明的是,上述视图接口502

1、回调接口502

2、数据存储接口502

3是和浏览器引擎相关的接口。
203.作为一种可选的实施方式,生成用于渲染显示浏览器页面的视图对象之后,还包括:
204.调用上述第二浏览器引擎的回调接口,生成用于监听浏览器页面在运行过程中生成的事件的回调对象。
205.应用层通过上述回调接口监听浏览器网页在运行中生成的事件,上述事件可以是用户点击下载链接、页面发生了运行错误、页面加载进度发生变化、页面触发了重定向、页面弹出了窗口、页面请求全屏显示、页面生成一条控制台信息等。
206.根据上述第二浏览器引擎的配置信息,实例化上述第二浏览器引擎的回调接口定义的回调类。
207.上述回调类指定义了页面中可能发生的事件的处理方法的类,由于内核上报事件的方式可能不同,需要根据当前使用的引擎进行配置,例如android.webkit.downloadlistener,在加载浏览器页面前实例化,并传入用于加载浏览器网页的控件但不参与页面加载,只有在用户点击下载链接触发下载事件时,该类的方法会
被调用。
208.由于浏览器页面可以通过cookie或者webstorage的标准接口向本地存储数据,而浏览器引擎对接口的实现不完全一致,可能会在切换浏览器引擎后出现本地存储无法读取的场景,因此,本发明实施例在重新渲染显示上述浏览器页面之后,还包括:
209.确定上述第一浏览器引擎的数据存储接口和上述第二浏览器引擎的数据存储接口,存储数据的格式和/或存储路径不同时,对预先记录的上述第一浏览器引擎的存储操作进行同步;
210.确定上述第二浏览器引擎存储数据时,记录上述第二浏览器引擎的存储操作;
211.其中,上述存储操作包括对待存储数据进行处理及存储到对应路径的操作。
212.对于不同浏览器引擎使用了同样的方案实现的功能,例如不同浏览器引擎存储cookie时如果使用了同样的格式,并指定存储在相同的路径下,采用相同的存储操作;对于不同浏览器引擎使用了不同的方案实现的功能,在适配层中通过记录当前浏览器引擎的存储接口的存储动作,并在切换浏览器引擎后在新浏览器引擎的对应类中回放,实现数据同步,在用户无感知的情况下实现浏览器引擎的切换。
213.例如,浏览器引擎a使用存储动作a,浏览器引擎b使用存储动作b,当上述浏览器引擎a和浏览器引擎b实现不一致时:无论当前哪个引擎在运行,只要触发了存储,就对内存中的数据,分别执行存储动作a和存储动作b,可以同步浏览过的所有浏览器页面的存储数据;或在标签页中记录浏览器引擎a使用存储动作a存储过的内存数据,切换到浏览器引擎b时,则对标签页中记录的数据全部执行存储动作b,可以同步当前页面的存储数据。
214.以将谷歌浏览器引擎切换为x5浏览器引擎为例,如图6所示,本发明实施例提供一种浏览器引擎的切换方法的实施方式的流程图,包括:
215.步骤s601,使用谷歌浏览器引擎渲染显示浏览器页面;
216.步骤s602,触发向x5浏览器引擎切换时,保存上述浏览器页面的url地址;
217.保存上述浏览器页面的url地址之后,销毁上述浏览器页面的页面视图。
218.销毁页面视图的目的是释放占用的内存,销毁页面视图后,标签页仍然为打开状态,但内容是空白的。
219.步骤s603,调用上述x5浏览器引擎的视图接口,生成用于渲染显示浏览器页面的视图对象;
220.步骤s604,调用上述x5浏览器引擎的回调接口,生成用于监听浏览器页面在运行过程中生成的事件的回调对象;
221.步骤s605,根据上述url地址加载上述浏览器页面的源文件,并利用上述视图对象,重新渲染显示上述浏览器页面。
222.将浏览器的页面视图更新为上述x5浏览器引擎的页面视图,并根据上述url地址在服务器侧获取源文件,并通过上述x5浏览器引擎重新渲染显示在上述x5浏览器引擎的页面视图中。
223.上述新建的页面视图会占据原页面视图的显示区域,并触发x5浏览器引擎的请求数据和加载流程。
224.实施例2
225.本发明实施例提供一种浏览器引擎的切换设备701,包括存储器702和处理器703,
如图7所示,其中:
226.所述存储器用于存储计算机程序;
227.所述处理器用于读取所述存储器中的程序并执行如下步骤:
228.使用第一浏览器引擎渲染显示浏览器页面;
229.触发向第二浏览器引擎切换时,保存所述浏览器页面的统一资源定位器url地址;
230.调用所述第二浏览器引擎的视图接口,生成用于渲染显示浏览器页面的视图对象;
231.根据所述url地址加载所述浏览器页面的源文件,并利用所述视图对象,重新渲染显示所述浏览器页面。
232.可选地,生成用于渲染显示浏览器页面的视图对象之后,所述处理器还用于:
233.调用所述第二浏览器引擎的回调接口,生成用于监听浏览器页面在运行过程中生成的事件的回调对象。
234.可选地,重新渲染显示所述浏览器页面之后,所述处理器还用于:
235.确定所述第一浏览器引擎的数据存储接口和所述第二浏览器引擎的数据存储接口,存储数据的格式和/或存储路径不同时,对预先记录的所述第一浏览器引擎的存储操作进行同步;
236.确定所述第二浏览器引擎存储数据时,记录所述第二浏览器引擎的存储操作;
237.其中,所述存储操作包括对待存储数据进行处理及存储到对应路径的操作。
238.可选地,所述处理器触发向第二浏览器引擎切换,包括:
239.监测到浏览器异常且异常原因为浏览器引擎异常时,触发将当前使用的所述第一浏览器引擎切换为任一当前未使用的第二浏览器引擎;或者
240.响应于用户的引擎切换请求,触发将当前使用的所述第一浏览器引擎,切换为所述引擎切换请求中指示的第二浏览器引擎。
241.可选地,所述引擎切换请求采用如下任一方式触发,包括:
242.确定当前使用的所述第一浏览器引擎,无法正常显示浏览器页面时,显示切换浏览器引擎的询问信息,响应于用户对所述询问信息的操作,触发引擎切换请求;或者
243.响应于用户对设置界面的浏览器引擎的选择操作,触发引擎切换请求。
244.可选地,所述视图接口采用如下任一方式实现:
245.当所述第二浏览器引擎为所述客户端设备使用的系统的标准浏览器引擎时,将所述系统的标准视图接口作为所述视图接口;
246.当所述第二浏览器引擎不是所述标准浏览器引擎时,在与所述标准视图接口无关的目录下,建立与实现所述标准视图接口的程序单元相同的程序单元,作为所述视图接口;或
247.当所述第二浏览器引擎不是所述标准浏览器引擎时,采用接口层逻辑代码,实现所述第二浏览器引擎对所述标准视图接口的调用功能。
248.可选地,使用第一浏览器引擎渲染显示浏览器页面之前,所述处理器还用于:
249.接收到启动浏览器的启动请求;
250.确定请求启动的浏览器引擎为标准浏览器引擎时,利用初始化的所述标准浏览器引擎,加载默认页面;
251.确定请求启动的浏览器引擎不是标准浏览器引擎,且所述请求启动的浏览器引擎的依赖库不存在时,下载所述依赖库,并根据所述依赖库初始化所述请求启动的浏览器引擎,加载默认页面;
252.确定请求启动的浏览器引擎不是标准浏览器引擎,且所述请求启动的浏览器引擎的依赖库存在时,根据所述依赖库初始化所述请求启动的浏览器引擎,加载默认页面。
253.本发明实施例提供一种浏览器引擎的切换装置,如图8所示,包括:
254.第一显示单元801,用于使用第一浏览器引擎渲染显示浏览器页面;
255.地址保存单元802,用于触发向第二浏览器引擎切换时,保存所述浏览器页面的统一资源定位器url地址;
256.对象生成单元803,用于调用所述第二浏览器引擎的视图接口,生成用于渲染显示浏览器页面的视图对象;
257.第二显示单元804,用于根据所述url地址加载所述浏览器页面的源文件,并利用所述视图对象,重新渲染显示所述浏览器页面。
258.可选地,生成用于渲染显示浏览器页面的视图对象之后,所述对象生成单元还用于:
259.调用所述第二浏览器引擎的回调接口,生成用于监听浏览器页面在运行过程中生成的事件的回调对象。
260.可选地,重新渲染显示所述浏览器页面之后,所述第二显示单元还用于:
261.确定所述第一浏览器引擎的数据存储接口和所述第二浏览器引擎的数据存储接口,存储数据的格式和/或存储路径不同时,对预先记录的所述第一浏览器引擎的存储操作进行同步;
262.确定所述第二浏览器引擎存储数据时,记录所述第二浏览器引擎的存储操作;
263.其中,所述存储操作包括对待存储数据进行处理及存储到对应路径的操作。
264.可选地,所述地址保存单元触发向第二浏览器引擎切换,包括:
265.监测到浏览器异常且异常原因为浏览器引擎异常时,触发将当前使用的所述第一浏览器引擎切换为任一当前未使用的第二浏览器引擎;或者
266.响应于用户的引擎切换请求,触发将当前使用的所述第一浏览器引擎,切换为所述引擎切换请求中指示的第二浏览器引擎。
267.可选地,所述引擎切换请求采用如下任一方式触发,包括:
268.确定当前使用的所述第一浏览器引擎,无法正常显示浏览器页面时,显示切换浏览器引擎的询问信息,响应于用户对所述询问信息的操作,触发引擎切换请求;或者
269.响应于用户对设置界面的浏览器引擎的选择操作,触发引擎切换请求。
270.可选地,所述视图接口采用如下任一方式实现:
271.当所述第二浏览器引擎为所述客户端设备使用的系统的标准浏览器引擎时,将所述系统的标准视图接口作为所述视图接口;
272.当所述第二浏览器引擎不是所述标准浏览器引擎时,在与所述标准视图接口无关的目录下,建立与实现所述标准视图接口的程序单元相同的程序单元,作为所述视图接口;或
273.当所述第二浏览器引擎不是所述标准浏览器引擎时,采用接口层逻辑代码,实现
所述第二浏览器引擎对所述标准视图接口的调用功能。
274.可选地,使用第一浏览器引擎渲染显示浏览器页面之前,所述第一显示单元还用于:
275.接收到启动浏览器的启动请求;
276.确定请求启动的浏览器引擎为标准浏览器引擎时,利用初始化的所述标准浏览器引擎,加载默认页面;
277.确定请求启动的浏览器引擎不是标准浏览器引擎,且所述请求启动的浏览器引擎的依赖库不存在时,下载所述依赖库,并根据所述依赖库初始化所述请求启动的浏览器引擎,加载默认页面;
278.确定请求启动的浏览器引擎不是标准浏览器引擎,且所述请求启动的浏览器引擎的依赖库存在时,根据所述依赖库初始化所述请求启动的浏览器引擎,加载默认页面。
279.本发明还提供一种计算机程序介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例1中提供的应用于客户端设备的浏览器引擎的切换方法的步骤。
280.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
281.所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
282.另外,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
283.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
284.所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导
体介质(例如固态硬盘(solid state disk,ssd))等。
285.以上对本技术所提供的技术方案进行了详细介绍,本技术中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
286.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
287.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
288.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
289.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
290.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献