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

原生应用网页加载方法、系统、存储介质及设备与流程

2022-02-21 04:04:37 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种原生应用网页加载方法、系统、存储介质及设备。


背景技术:

2.现有技术中,原生应用的网页资源打包后为一个整体,即网页打包成原生应用后无法动态更新;网页无法随需加载,必须打包到原生应用内部,占用体积;访问网页时,使用在线网页地址会增加网络请求,消耗带宽。


技术实现要素:

3.本发明所要解决的技术问题是针对现有技术存在的问题,提供一种原生应用网页加载方法、系统、存储介质及设备。
4.为解决上述技术问题,本发明实施例提供一种原生应用网页加载方法,包括:预测原生应用当前网页的所有待跳转网页;将所有待跳转网页的网页离线包从本地磁盘加载到内存中,并将所有待跳转网页的网页离线包的存储地址运行在不同的webview实例中;其中,所述原生应用的网页资源拆分为多个网页离线包,所有网页离线包存储在本地磁盘中;当确认所述当前网页跳转至所述所有待跳转网页中的目标网页时,加载所述目标网页对应的webview实例中存储地址对应的网页离线包。
5.为解决上述技术问题,本发明实施例提供一种原生应用网页加载系统,包括:预测模块、预加载模块和加载模块。预测模块用于预测原生应用当前网页的所有待跳转网页;预加载模块用于将所有待跳转网页的网页离线包从本地磁盘加载到内存中,并将所有待跳转网页的网页离线包的存储地址运行在不同的webview实例中;其中,所述原生应用的网页资源拆分为多个网页离线包,所有网页离线包预先存储在本地磁盘中;加载模块用于当确认所述当前网页跳转至所述所有待跳转网页中的目标网页时,加载所述目标网页对应的webview实例中存储地址对应的网页离线包。
6.为解决上述技术问题,本发明实施例提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使所述计算机执行上述技术方案所述的原生应用网页加载方法。
7.为解决上述技术问题,本发明实施例提供一种计算机设备,包括存储器、处理器及存储在所述存储器上的并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述技术方案所述的原生应用网页加载方法。
8.本发明的有益效果是:通过上述网页离线包的存储方式可实现原生应用各网页离线包的动态更新,网页离线包可随需加载,且降低了网络请求,节约了带宽;通过上述网页离线包的加载方式,可进行内存隔离和数据缓存,同时应用转场效果大幅提高,提高了用户体验。
9.本发明附加的方面及其优点将在下面的描述中部分给出,部分将从下面的描述中
变得明显,或通过本发明实践了解到。
附图说明
10.图1为本发明实施例提供的原生应用网页加载方法流程图;
11.图2为本发明实施例提供的网页离线包生成并发布的流程图;
12.图3为本发明实施例提供的原生应用网页加载系统框图。
具体实施方式
13.以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
14.需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
15.图1为本发明实施例提供的原生应用网页加载方法流程图。如图1所示,该方法包括:
16.s110,预测原生应用当前网页的所有待跳转网页。
17.原生应用app开发程序是一种开发用于特定平台或设备的软件程序。由于原生应用app开发程序是为了在特定设备及其操作系统上使用而构建的,因此它可以使用设备特定的硬件和软件。与开发为跨多个系统通用的网络应用程序或移动云应用程序相比,原生应用app开发程序可以提供优化的性能并充分利用gps等最新技术的优势。
18.凭借挖掘特定资源的能力,本地应用可以快速访问设备上的多项服务,例如麦克风,加速计或推送通知。原生应用app开发程序的示例范围可以从导航程序(如高德地图)到社交应用程序(如微信)或游戏(如绝地求生)。
19.以微信为例,假设当前页面为“最近使用的小程序页面”,当前页面中包括多个小程序,那么所有的小程序都是当前页面的待跳转网页。
20.本发明实施例中,可以将原生应用当前网页中调用js-sdk方法的所有网页作为待跳转网页。js-sdk方法中js指javascript。javascript(简称“js”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;sdk指软件开发工具包。
21.s120,将所有待跳转网页的网页离线包从本地磁盘加载到内存中,并将所有待跳转网页的网页离线包的存储地址运行在不同的webview实例中。
22.本发明实施例中,将原生应用的网页资源拆分为多个网页离线包,所有网页离线包预先存储在本地磁盘中。如微信中的每个小程序都对应一个网页离线包,假设“最近使用的小程序页面”中有五个小程序,那么这五个小程序对应的网页都是当前页面的待跳转网页,将这五个小程序的网页离线包从本地磁盘加载到内存中,并将这五个小程序的存储地址分别运行在不同的webview实例中。
23.s130,当确认所述当前网页跳转至所述所有待跳转网页中的目标网页时,加载所述目标网页对应的webview实例中存储地址对应的网页离线包。
24.假设用户点击“最近使用的小程序页面”中有小程序a时,则确认当前网页将跳转至小程序a的页面,根据小程序a对应的webview实例中的存储地址获取并加载小程序a的网页离线包。如当调用js-sdk方法时,获取参数中的appid;appid对应的webview实例获取并加载对应存储地址存储的网页离线包。
25.上述实施例中,通过将原生应用的网页资源拆分为多个网页离线包,所有网页离线包存储在本地磁盘中,可实现原生应用各网页离线包的动态更新,网页离线包可随需加载;网页离线包存储在本地,加载时无需到服务器端获取网页资源,降低网络请求,节约带宽;并且在网页跳转前,提前预测当前网页可能跳转的所有网页,将可能跳转的所有网页的网页离线包预先从磁盘中加载到内存中,并且所有可能跳转的网页离线包在内存的存储地址分别运行在不同的webview实例中,当确认了当前网页需要跳转到的目标网页时,直接加载所述目标网页对应的webview实例中存储地址对应的网页离线包,通过上述网页离线包加载方式,可进行内存隔离和数据缓存,同时应用转场效果大幅提高,提高了用户体验。
26.可选地,在一个实施例中,在进行原生应用加载网页之前,需要预先生成并发布原生应用的所有网页离线包,具体包括如下步骤:
27.s210,将随机生成的字符串作为网页离线包的appid,确定所述网页离线包的版本号,提取所述网页离线包的特征值;根据所述appid、版本号和特征值生成所述网页离线包的唯一标识。
28.也就是说,离线包的唯一标识分为三部分:第一部分为系统内随机生成的字符串作为离线包的appid,如atobacndvznniiyg;第二部分为该离线包的三位版本号,如1.0.0。第三部分为离线包的的md5特征值,如9de804f1cf665341。将第一和第二两部分以中划线连接,得到如atobacndvznniiyg-1.0.0的字符串,该字符串就是此网页离线包的实际存储名称。将第三部分的md5特征值存储到关系型数据库用来进行完整性校验。至此,网页离线包的定义已经完成。
29.独特的网页离线包的定义,结合md5特征值的提取,使离线包的安全完整性大大提升,通过前后端一体化的方案,无需关注应用发布,只需关注业务自身也可以完成系统的集成。
30.s220,将所述网页离线包的压缩包及对应的标识信息加密上传至文件存储服务器。
31.具体地,如图2所示,网页离线包开发完成后,通过zip命令进行压缩,得到如dist.zip的压缩包。通过文件存储服务器提供的文件上传接口,将dist.zip压缩包、appid以及版本号作为参数进行传输,文件存储服务器在获取到dist.zip后,进行离线包特征值的提取,并通过appid和版本号对离线包进行重命名,将md5特征值和版本号作为此次变更
记录存储到关系型数据库中。
32.网页离线包的标识定义、版本管理和加密上传是网页离线包发布的重要组成部分,每个网页离线包都有其唯一的标识来横向和其他网页离线包进行区分,通过版本号进行纵向的版本管理区分。
33.可选地,在一个实施例中,原生应用的网页离线包发布到文件存储服务器后,原生应用从文件存储服务器获取原生应用的所有网页离线包并存储到本地磁盘中,包括:所述原生应用获取所述网页离线包的属性信息,如appid-1.0.0.zip包名、版本信息、md5戳和下载地址。从所述属性信息中提取appid和第一版本号v1,并在原生应用指定目录下查找以appid命名的目标文件夹;当目标文件夹不存在时,下载网页离线包,下载完成后与接口中的特征值进行完整性校验,校验通过后将所述网页离线包解压缩到原生应用指定目录下,并以appid作为解压缩后的文件夹名称,同时本地进行以appid为key,以版本号为值的对象存储。
34.当目标文件夹存在时,则需要进行版本比对,确认本地存储的离线包是否为当前最新版本。具体地,通过本地的对象存储查询所述appid对应的目标文件夹中存储的离线网页包的第二版本号v2,对比所述目标文件夹中存储的离线网页包的第二版本号v2和待下载离线网页包的第一版本号v1,当所述第一版本号v1大于所述第二版本号v2时,下载并更新所述离线网页包。
35.比对方法举例如下,假设v1为1.0.1,v2为1.0.0,两者均为三位版本号,从左往右以小数点为分割分别为高、中、低三位,先后判断v1与v2的高位、中位、低位,任意一位的比较结果如不相等,则以该结果作为最终的比对结果,如相等则进入下一位比较。若高中低三位均为相等,则两版本号一致。
36.通过离线压缩包的上传和版本号的设置,可以进行离线包的更新。如远端存储的版本号大于本地存储的版本号,则需进行离线包的更新,更新方式如下:下载远端最新的离线压缩包;删除指定目录下原有的以appid命名的文件夹;解压缩离线压缩包到指定目录下,以appid命名。至此,完成了离线包的更新。
37.在原生应用运行时,通过指定的appid,可以获取到离线包当前所处的本地文件夹的地址,通过原生应用内置的浏览器打开本地地址,完成网页离线包的使用。
38.本发明实施例可实现原生应用网页离线使用及动态升级,并且充分考虑了网页开发与访问的特点,在各个环节采用特定的方法来解决特定问题,使可能成为瓶颈的技术点都可以弹性扩展,以满足不同业务增长的需要,并且没有上限。
39.上文结合图1至图2,详细描述了根据本发明实施例提供的原生应用网页加载方法。下面结合图3,详细描述本发明实施例提供的原生应用网页加载系统。
40.如图3所示,一种原生应用网页加载系统300,包括:预测模块310、预加载模块320和加载模块330。预测模块310用于预测原生应用当前网页的所有待跳转网页;预加载模块310用于将所有待跳转网页的网页离线包从本地磁盘加载到内存中,并将所有待跳转网页的网页离线包的存储地址运行在不同的webview实例中;其中,所述原生应用的网页资源拆分为多个网页离线包,所有网页离线包预先存储在本地磁盘中;加载模块320用于当确认所述当前网页跳转至所述所有待跳转网页中的目标网页时,加载所述目标网页对应的webview实例中存储地址对应的网页离线包。
41.具体地,预测模块310将原生应用当前网页中调用js-sdk方法的所有网页作为待跳转网页。本发明实施例中,基于原生开发,通过sdk的开发完成了手机能力的调用,并通过嵌入sdk,接入离线h5应用(网页离线包)到原生容器中。通过多个个js-sdk,提供了丰富的原生应用的能力,如打开新的页面,跳转,获取地理位置等,网页离线应用通过js-sdk可以触达这些基础能力,完成应用开发。
42.离线h5在实现网页跳转时,由原生容器拦截并通过新建webview实例进行目标页面的渲染,基于此项特性,使得离线h5应用性能大幅提高,每个单独的网页地址运行在不同的webview实例中,可进行内存隔离和数据缓存,同时应用转场效果大幅提高,提高了用户手机端的体验。
43.本发明实施例对网页离线包提取特征值,生成唯一应用标识和版本信息;将网页离线包加密上传至文件存储服务中;采用nginx提供的web服务对存储的文件进行访问,原生应用使用网页离线包的唯一标识进行离线包的下载和本地磁盘存储;访问此网页时,可直接拦截并通过本地应用浏览器打开网页包。本发明实施例提供了一套完整的网页包文件的写入、存储、访问、升级,且通过原生容器提供sdk打开多webview实例运行h5离线应用的系统。
44.本发明实施例还提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使所述计算机执行上述实施例提供的原生应用网页加载方法。
45.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在所述存储器上的并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例提供的原生应用网页加载方法。
46.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
47.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
48.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
49.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
50.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机
存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
51.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献