安卓H5页面的加载方法、装置、设备及存储介质与流程

文档序号:15888442发布日期:2018-11-09 19:48阅读:198来源:国知局
安卓H5页面的加载方法、装置、设备及存储介质与流程

本发明涉及通信技术领域,涉及一种安卓h5页面的加载方法、装置、设备及存储介质。

背景技术

由于android6.0以上系统版本才支持http2.0网络协议,所以很多app都会选择开源的支持http2.0网络协议的h5加载内核替换原生的内核,并且开源的内核对h5加载的时间和流量上面都有一定的提升。

但是,开源的内核接入都需要将项目中所有涉及webview的类进行导包的替换,虽然开源的内核也有提供脚本进行全项目扫描的功能,但是全项目扫描替换的代码改动量和工作量太大,另外每次发版本之前都要做这样的扫描检查和替换非常麻烦。

此外,如果切换到开源内核之后,在产线上由于开源内核的稳定性和兼容性出现bug,那我们就只能通过发版本或者发热修复来解决,比较麻烦,代价也很大。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中h5页面为了适应安卓系统使用,采用开源的内核替换原生的内核时容易出错的问题,提出了一种安卓h5页面的加载方法、装置、设备及存储介质,通过在加载框架中设置两套加载内核,以实现h5页面和两套内核之间的切换交互,通过将所有与webview相关的原生内核类的导包路径映射为继承的内核类的导包路径写入加载框架中,以实现代码一次替换终身可用的目的。

本发明是通过下述技术方案来解决上述技术问题:

一种安卓h5页面的加载方法,包括以下步骤:

s1、加载框架接收用户发送的h5页面加载请求,所述请求包含所述用户使用的机型和所述h5页面的标识信息,所述加载框架内设置有原生内核类的导包路径和第三方内核类的导包路径;

s2、加载框架根据所述请求获取所要加载的h5页面的配置信息,所述配置信息包含内核切换开关,通过所述内核切换开关选择所述h5页面的加载内核;

s3、识别所述内核切换开关的状态,根据识别的结果采用与所述结果相对应的内核加载所述h5页面,所述内核包括原生内核和第三方内核。

优选地,所述s3包括以下分步骤:

s31、判断所述内核切换开关的状态,若状态为打开则执行步骤32,若状态为关闭则执行步骤33;

s32、采用第三方内核加载h5页面,所述第三方内核中与webview相关的原生内核类的导包路径采用继承原生内核类的导包路径预设在加载框架中;

s33、采用原生内核加载h5页面。

优选地,所述s2中所述配置信息还包括白名单,所述白名单内罗列有适用第三方内核加载h5页面的机型;

在所述s31之前还包括:

s301、判断发送h5页面加载请求的机型是否位于白名单中,若是则执行s31,若否则直接执行s33。

优选地,所述s2中所述配置信息还包括黑名单,所述黑名单内罗列有不适用第三方内核加载h5页面的机型;

在所述s31之前还包括:

s302、判断发送h5页面加载请求的机型是否位于黑名单中,若否则执行s31,若是则直接执行s33。

优选地,所述s2中所述配置信息还包括白名单和黑名单,所述白名单内罗列有适用第三方内核加载h5页面的机型,所述黑名单内罗列有不适用第三方内核加载h5页面的机型;

在所述s31之前还包括:

s303、判断发送h5页面加载请求的机型是否位于白名单中和是否位于黑名单中,若仅位于白名单中则执行s31,若仅位于黑名单中则直接执行s33。

优选地,所述s303中当发送h5页面加载请求的机型即不位于白名单中也不位于黑名单中时,直接执行s33;

所述s33还包括,所述加载框架记录所述h5页面被所述原生内核加载的情况。

优选地,所述发送h5页面加载请求的机型通过从所述请求中截取获得。

一种电子装置,所述电子装置上存储有安卓h5页面的加载框架系统,所述安卓h5页面的加载框架系统包括:

接收模块,用于接收用户发送的h5页面加载请求,所述请求包含所述用户使用的机型;

导包路径设置模块,用于设置原生内核类的导包路径和第三方内核类的导包路径;

配置信息获取模块,用于获取所要加载的h5页面的配置信息,所述配置信息包含内核切换开关,通过所述内核切换开关选择所述h5页面的加载内核;

识别加载模块,用于识别所述内核切换开关的状态,根据识别的结果采用与所述结果相对应的内核加载所述h5页面,所述内核包括原生内核和第三方内核。

一种计算机设备,包括存储器和处理器,所述存储器上存储有可被所述处理器执行的安卓h5页面的加载框架系统,所述系统被所述处理器执行时实现如前述中任一项所述的安卓h5页面的加载方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序指令,所述计算机程序指令可被至少一个处理器所执行,以使所述至少一个处理器执行如前述中任一项所述的安卓h5页面的加载方法的步骤。

本发明的积极进步效果在于:

1、原生内核类的导包路径和第三方内核类的导包路径都设置于加载框架中,当需要采用原生内核或者其他第三方内核时,只需修改加载框架中内核类的导包路径即可,无需对全项目中相关的内核类导包路径进行修改,降低修改工作量,有效避免遗漏。

2、当h5页面上线后第三方内核出现bug时,只需将与h5页面交互的内核切换为原生内核即可实现修复,待第三方内核的bug修复后再切换回去,实现快速切换和修复的功能。

3、当h5页面中某个具体业务逻辑需要新增或者删减功能时候,不需要维护两套h5页面,减少开发工作量,避免功能遗漏的可能性,减小代码耦合度,提高了代码质量,增强架构的健壮性。

附图说明

图1示出了本发明安卓h5页面的加载方法实施例一的流程图;

图2示出了本发明安卓h5页面的加载方法实施例二的流程图;

图3示出了本发明电子装置中安卓h5页面的加载框架系统第一实施例的程序模块示意图;

图4示出了本发明计算机设备一实施例的硬件架构示意图。

附图标记:

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

首先,本发明提出一种安卓h5页面的加载方法。

在实施例一中,如图1所示,所述的安卓h5页面的加载方法包括如下步骤:

s1、加载框架接收用户发送的h5页面加载请求,所述请求包含所述用户使用的机型和所述h5页面的标识信息,所述加载框架内设置有原生内核类的导包路径和第三方内核类的导包路径。

h5页面中需要用到一些基础工具(比如协议、密码修改、展示介绍等),这些基础工具调用需要在代码中加入导包路径。

对于h5页面的原始代码都是采用原生内核进行加载的,因而在代码中需要写入原生内核类的导包路径。然而当h5页面在安卓系统上运行时,如果安卓系统版本过低可能不能支持高版本的网络协议,因而通常不采用原生内核进行加载,而是需要采用第三方内核进行加载。

h5页面通常由微信进行传播,常用的第三方内核为腾讯x5内核,而h5页面要在微信中显示,需要用到该内核中的一个用于显示网页的控件webview(网页视图),因而此时需要将所有涉及webview的原生内核类的导包路径采用第三方内核类的导包路径进行替换。

这里所述加载框架就是用于实现h5页面与内核之间的交互,以判断在用户使用的机型上采用哪种内核进行加载h5页面的操作。

s2、加载框架根据所述请求获取所要加载的h5页面的配置信息,所述配置信息包含内核切换开关,通过所述内核切换开关选择所述h5页面的加载内核。

具体采用哪种内核加载h5页面由程序员预先在加载框架的内核加载配置信息中进行设置,这里的内核切换开关相当于内核选择开关,其开和关分别对应不同内核。

例如:开对应第三方内核,即选择采用第三方内核加载h5页面,关对应原生内核,即选择采用原生内核加载h5页;以上仅是示例性说明,还可以是开对应原生内核,关对应第三方内核,只要预先设置即可。

s3、识别所述内核切换开关的状态,根据识别的结果采用与所述结果相对应的内核加载所述h5页面,所述内核包括原生内核和第三方内核。

所述识别的结果就是指识别出内核切换开关为“开”还是“关”,然后根据预设的对应关系,调用对应的内核加载所述h5页面。比如:“开”对应的第三方内核,那么当识别结果为“开”时,则调用第三方内核加载h5页面。

在实施例二中,基于实施例一的基础上,如图2所示,所述步骤s3包括以下分步骤:

s31、判断所述内核切换开关的状态,若状态为打开则执行步骤32,若状态为关闭则执行步骤33。

s32、采用第三方内核加载h5页面,所述第三方内核中与webview相关的原生内核类的导包路径采用继承原生内核类的导包路径预设在加载框架中。

由于传播h5页面的微信采用webview控件实现页面显示,因而必须将与webview相关的原生内核类的导包路径进行替换。原来的做法是进行扫描后进行人工一一替换,工作量大,而且容易出错。

本实施例中采用继承的方式,将第三方内核中与webview相关的原生内核类的导包路径采用继承原生内核类的导包路径的方法设置到加载框架中。

例如:yqbwebview---继承---webview,当加载框架接收到h5页面的加载请求时,会自动将代码中使用到的webview统一替换成yqbwebview,这就是继承的运作方式。

这样,当有其他的h5页面使用到webview内核中相关类时,不需要每次检索新增使用内核中的类然后逐一做导包替换,只需要将继承原生内核类的导包进行替换就可以达到切换webview内核的目的,以实现代码一次替换终身可用的目的。

s33、采用原生内核加载h5页面。

本实施例中,以假设当内核切换开关为开时对应第三方内核,为关时对应原生内核为例进行说明。

在实施例三中,基于实施例二的基础上,所述s2中所述配置信息还包括白名单,所述白名单内罗列有适用第三方内核加载h5页面的机型;

在所述s31之前还包括:

s301、判断发送h5页面加载请求的机型是否位于白名单中,若是则执行s31,若否则直接执行s33。

所述发送h5页面加载请求的机型具体可以通过从所述请求中截取获得。

每个h5页面上线之前都要经过测试,以查看该页面是否适用于在各种机型的显示屏进行显示,由于机型不同,可能导致显示异常。而对于测试来说,并不能保证可以测试到所有机型。

本实施例中,通过在配置信息中增加白名单,以确保仅在测试通过的机型上显示时采用第三方内核加载,而在测试不通过或没有测试过的机型上仍采用原生内核加载,以尽量避免显示错误引起的客户体验不佳。

进一步地,该白名单还可以设置开关,“开”表示启用,“关”表示不启用,当启动时,即按本实施例中所述步骤进行,当不启用时,即同实施例二中所述步骤进行。

在实施例四中,基于实施例二的基础上,所述s2中所述配置信息还包括黑名单,所述黑名单内罗列有不适用第三方内核加载h5页面的机型;

在所述s31之前还包括:

s302、判断发送h5页面加载请求的机型是否位于黑名单中,若否则执行s31,若是则直接执行s33。

所述发送h5页面加载请求的机型具体可以通过从所述请求中截取获得。

本实施例中,通过在配置信息中增加黑名单,以确保测试不通过的机型上显示时采用原生内核加载,而在测试通过或没有测试过的机型上直接采用第三方内核加载。

在一实施例中,还可以增加获取加载情况反馈的功能,以得知h5页面在用户手机上的实际加载情况,特别是对那些没有测试过的机型,借助用户的反馈以获取加载情况,帮助h5页面发布者进行测试。

进一步地,该黑名单还可以设置开关,“开”表示启用,“关”表示不启用,当启动时,即按本实施例中所述步骤进行,当不启用时,即同实施例二中所述步骤进行。

在实施例五中,基于实施例二的基础上,所述s2中所述配置信息还包括白名单和黑名单,所述白名单内罗列有适用第三方内核加载h5页面的机型,所述黑名单内罗列有不适用第三方内核加载h5页面的机型;

在所述s31之前还包括:

s303、判断发送h5页面加载请求的机型是否位于白名单中和是否位于黑名单中,若仅位于白名单中则执行s31,若仅位于黑名单中则直接执行s33。

所述发送h5页面加载请求的机型具体可以通过从所述请求中截取获得。

测试需要时间,而h5页面的上线时间有时候决定了商机由谁抢占,因而发布者很多时候希望越早上线越好,测试可以在上线后继续进行。

因此,本实施例中同时增加了白名单和黑名单,通过同时使用这两个名单,将所有经过测试的机型都囊括在内,每测试完一种机型,就可以根据测试结果将该机型加入到相应的白名单或黑名单,使用更灵活。

进一步地,这里的白名单和黑名单都可以设置单独的开关,“开”表示启用,“关”表示不启用,可以选择同时启用,同时不启用,还可以选择启用任意一个,增加配置的灵活性。

在实施例六中,基于实施例五的基础上,当发送h5页面加载请求的机型即不位于白名单中也不位于黑名单中时,直接执行s33;

所述s33还包括,所述加载框架记录所述h5页面被所述原生内核加载的情况。

本实施中通过对加载情况的记录,使得h5页面的发布者能及时得知未测试机型对h5页面的加载情况,以便发布者对应加载情况将未测试机型加入到白名单或者黑名单中,补充测试机型。

其次,本发明提出了一种电子装置,所述电子装置上存储有安卓h5页面的加载框架系统20,所述系统20用于实现h5页面与内核之间的交互,所述系统20可以被分割为一个或者多个程序模块。

例如,图3示出了所述安卓h5页面的加载框架系统20第一实施例的程序模块示意图,该实施例中,所述系统20可以被分割为接收模块201、导包路径设置模块202、配置信息获取模块203和识别加载模块204。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段。以下描述将具体介绍所述程序模块201-204的具体功能。

所述接收模块201用于接收用户发送的h5页面加载请求,所述请求包含所述用户使用的机型。

本装置中,h5页面通过加载框架系统20实现加载,因此用户发送的h5页面加载请求直接由系统20中的接收模块201进行接收。

所述导包路径设置模块202用于设置原生内核类的导包路径和第三方内核类的导包路径。

h5页面中需要用到一些基础工具(比如协议、密码修改、展示介绍等),这些基础工具调用需要在代码中加入导包路径。对于h5页面的原始代码都是采用原生内核进行加载的,因而在代码中需要写入原生内核类的导包路径。然而当h5页面在安卓系统上运行时,如果安卓系统版本过低可能不能支持高版本的网络协议,因而通常不采用原生内核进行加载,而是需要采用第三方内核进行加载。h5页面通常由微信进行传播,常用的第三方内核为腾讯x5内核,而h5页面要在微信中显示,需要用到该内核中的一个用于显示网页的控件webview(网页视图),因而此时需要将所有涉及webview的原生内核类的导包路径采用第三方内核类的导包路径进行替换。

前述所述的两种导包路径均通过导包路径设置模块202进行预设。

所述配置信息获取模块203用于获取所要加载的h5页面的配置信息,所述配置信息包含内核切换开关,通过所述内核切换开关选择所述h5页面的加载内核。

具体采用哪种内核加载h5页面由程序员预先在加载框架的内核加载配置信息中进行设置,这里的内核切换开关相当于内核选择开关,“开”和“关”分别对应不同内核。

例如:开对应第三方内核,即选择采用第三方内核加载h5页面,关对应原生内核,即选择采用原生内核加载h5页;以上仅是示例性说明,还可以是开对应原生内核,关对应第三方内核,只要预先设置即可。

通过在配置信息中设置内核切换开关,当第三方内核出现bug时,只需将内核切换开关关闭,使所有机型暂时均采用原生内核进行显示,待第三方内核的bug修复后再切换回,以实现快速切换和修复的功能,不影响用户使用。

所述识别加载模块204用于识别所述内核切换开关的状态,根据识别的结果采用与所述结果相对应的内核加载所述h5页面,所述内核包括原生内核和第三方内核。

所述识别的结果就是指识别出内核切换开关为“开”还是“关”,然后根据预设的对应关系,调用对应的内核加载所述h5页面。比如:“开”对应的第三方内核,那么当识别结果为“开”时,则调用第三方内核加载h5页面。

进一步地,所述识别加载模块204还可以被划分为状态判断模块、第三方内核加载模块和原生内核加载模块。

所述状态判断模块用于判断所述内核切换开关的状态。即判断内核切换开关为“开”还是“关”。

所述第三方内核加载模块用于在内核切换开关的状态为“开”时,采用第三方内核加载h5页面,所述第三方内核中与webview相关的原生内核类的导包路径采用继承原生内核类的导包路径预设在加载框架中。

由于传播h5页面的微信采用webview控件实现页面显示,因而必须将与webview相关的原生内核类的导包路径进行替换。原来的做法是进行扫描后进行人工一一替换,工作量大,而且容易出错。这里采用继承的方式将第三方内核中与webview相关的原生内核类的导包路径采用继承原生内核类的导包路径的方法设置到加载框架中。

举例来说,假设yqbwebview---继承---webview,当加载框架接收到h5页面的加载请求时,会自动将代码中使用到的webview统一替换成yqbwebview,这样当有其他的h5页面使用到webview内核中相关类时,不需要每次检索新增使用内核中的类然后逐一做导包替换,只需要将继承原生内核类的导包进行替换就可以达到切换webview内核的目的,以实现代码一次替换终身可用的目的。

所述原生内核加载模块用于在内核切换开关的状态为“关”时,采用原生内核加载h5页面。

更进一步地,由于每个h5页面上线之前都要经过测试,以查看该页面是否适用于在各种机型的显示屏进行显示,由于机型不同,可能导致显示异常。而对于测试来说,并不能保证可以测试到所有机型。

因此,所述配置信息除了包含内核切换开关以外,还可以包括白名单和/或黑名单,所述白名单内罗列有适用第三方内核加载h5页面的机型;所述黑名单内罗列有不适用第三方内核加载h5页面的机型。所述白名单和名单的使用参照方法实施例三至六,此处不再赘述。

这里所述的白名单和黑名单都可以单独增加开关,通过开关状态的改变,以实现白名单和黑名单的同时启用,同时不启用,或者启用其中的任意一个。

再次,本发明还提出来一种计算机设备。

参阅图4所示,是本发明计算机设备一实施例的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图所示,所述计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及安卓h5页面的加载框架系统20。其中:

所述存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,所述存储器21还可以既包括所述计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述计算机设备2的操作系统和各类应用软件,例如所述安卓h5页面的加载框架系统20的程序代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。

所述处理器22在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述计算机设备2的总体操作,例如执行与所述计算机设备2进行数据交互或者通信相关的控制和处理等。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述的安卓h5页面的加载框架系统20等。

所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述计算机设备2与其他计算机设备之间建立通信连接。例如,所述网络接口23用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(intranet)、互联网(internet)、全球移动通讯系统(globalsystemofmobilecommunication,gsm)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi-fi等无线或有线网络。

需要指出的是,图4仅示出了具有组件21-23的计算机设备2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

在本实施例中,存储于存储器21中的所述安卓h5页面的加载框架系统20可以被一个或多个处理器(本实施例为处理器22)所执行,以完成上述安卓h5页面的加载方法的操作。

此外,本发明一种计算机可读存储介质,该计算机可读存储介质为非易失性存储介质,存储有计算机程序指令,该计算机程序指令可被一个或多个处理器执行时,实现上述安卓h5页面的加载方法或电子装置的操作。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1