首页 / 专利库 / 电脑零配件 / 计算机系统 / 软件 / 软件套件 / 软件组件 / 插件 / 一种跨平台应用装置、终端及存储介质

一种跨平台应用装置、终端及存储介质

阅读:2发布:2020-06-09

专利汇可以提供一种跨平台应用装置、终端及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种跨平台应用装置、终端及存储介质。其中,该装置包括:应用模 块 和前端模块,其中,应用模块和前端模块通过桥接 接口 通信,应用模块包括热更新单元,热更新单元用于更新本地Web资源文件。通过本发明 实施例 提供的方案能够在业务逻辑频繁更新的场景下,通过对Web资源包热更新的方式,快速实现业务逻辑代码的更新,并实现最新资源文件相应的功能。,下面是一种跨平台应用装置、终端及存储介质专利的具体信息内容。

1.一种跨平台应用装置,其特征在于,包括:应用模和前端模块,其中,所述应用模块和所述前端模块通过桥接接口通信;
所述应用模块包括热更新单元,所述热更新单元用于更新本地网络Web资源文件。
2.根据权利要求1所述的装置,其特征在于,所述应用模块还包括插件加载单元,所述插件加载单元用于根据插件清单文件加载插件。
3.根据权利要求1所述的装置,其特征在于,所述前端模块包括路由单元,路由单元用于通过定位接口实现页面路由跳转。
4.根据权利要求1-3任一项所述的装置,其特征在于,所述桥接接口用于对应用模块和前端模块的功能方法池和回调方法池进行管理和维护。
5.根据权利要求2所述的装置,其特征在于,所述根据插件清单文件加载插件,包括:
配置初始运行环境参数;
根据所述插件清单文件实例化功能插件;
加载实例化后的所述功能插件。
6.根据权利要求5所述的装置,其特征在于,所述根据所述插件清单文件实例化功能插件,包括:
解析所述插件清单文件以获取插件配置文件;
对所述插件配置文件进行校验;
解析校验后的所述插件配置文件以获取插件类,并加载插件类;
对所述插件类进行实例化,获得插件实例;
将所述插件实例添加至插件集合数据结构中。
7.根据权利要求1所述的装置,其特征在于,所述更新本地Web资源文件,包括:
服务器获取特定版本的Web资源文件列表;
将所述特定版本的Web资源文件列表与本地资源文件进行对比,获取待更新的文件集合;
根据所述待更新的文件集合更新本地Web资源文件。
8.根据权利要求7所述的装置,其特征在于,所述将所述特定版本的Web资源文件列表与本地资源文件进行对比,获取待更新的文件集合,包括:
对本地资源文件进行签名;
将签名后的本地资源文件与所述特定版本的Web资源文件列表中的文件名称和文件签名进行对比;
将所述签名后的本地资源文件与所述特定版本的Web资源文件列表中签名不相同的文件,以及本地资源文件中不存在的特定版本的Web资源文件列表中的文件作为待更新的文件集合。
9.一种终端,其特征在于,包括:存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述存储器上存储的计算机程序时,实现如权利要求1-8任一项中所述跨平台应用装置的功能。
10.一种计算机可读写存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-8中任一项所述跨平台应用装置的功能。

说明书全文

一种跨平台应用装置、终端及存储介质

技术领域

[0001] 本发明实施例涉及软件开发技术,尤其涉及一种跨平台应用装置、终端及存储介质。

背景技术

[0002] 在“互联网+”和“移动优先”的战略下,移动端应用被推出,但在推行过程中存在以下几个问题:一、需要运用不同的技术栈同时开发多套在业务逻辑上和用户界面交互上基本一致的代码,这样人成本和代码维护成本较高;二、由于原生技术的限制以及应用商店的管控和审核流程不可控等因素,移动应用的更新较为困难;三、对于移动设备系统版本(尤其是安卓(Android)版本),设备配置碎片化现象严重,开发人员往往需要花费大量的精力和时间进行适配工作,并且不同平台对于适配的要求也各不相同。
[0003] 针对上述问题,现有技术中提出了两种解决方案,一种是采用RN(React-Native)跨端技术,另一种是设计小程序。但React-Native是通过将JS(JavaScript)编译为原生控件构建用户界面,在业务逻辑实现和用户交互层面不如万维网(World Wide Web,Web)技术灵活,对于RN库不支持的控件,还需要借助Native技术进行开发,而小程序的运行环境是Web技术环境的一个子集,且受户应用(Application,App)的各种限制,如用户认证体系、开发语言、页面深度限制等,无法支持独立App。

发明内容

[0004] 本发明提供一种跨平台应用装置、终端及存储介质,能够在业务逻辑频繁更新的场景下,通过对Web资源包热更新的方式,快速实现业务逻辑代码的更新,并实现最新资源文件相应的功能。
[0005] 第一方面,本发明实施例提供了一种跨平台应用装置,包括:应用模和前端模块;
[0006] 其中,应用模块和前端模块通过桥接接口通信;
[0007] 应用模块包括热更新单元,热更新单元用于更新本地网络Web资源文件。
[0008] 第二方面,本发明实施例还提供了一种终端,该终端包括:
[0009] 存储器、处理器及存储在存储器上的计算机程序,当处理器执行存储器上存储的计算机程序时,实现如本发明任一实施例中跨平台应用装置的功能。
[0010] 第三方面,本发明实施例还提供了一种计算机可读写存储介质,其上存储有计算机程序,其当计算机程序被处理器执行时,实现如本发明任一实施例中跨平台应用装置的功能。
[0011] 本发明实施例提供了一种跨平台应用装置、终端及存储介质,包括应用模块和前端模块,其中,应用模块和前端模块通过桥接接口通信,应用模块包括热更新单元,热更新单元用于更新本地Web资源文件。通过本发明实施例提供的方案能够在业务逻辑频繁更新的场景下,通过对Web资源包热更新的方式,快速实现业务逻辑代码的更新,并实现最新资源文件相应的功能。附图说明
[0012] 图1为本发明实施例一中的跨平台应用装置结构示意图;
[0013] 图2为本发明实施例二中的跨平台应用装置结构示意图;
[0014] 图3是本发明实施例三中的终端结构示意图。

具体实施方式

[0015] 下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0016] 另外,在本发明实施例中,“可选地”或者“示例性地”等词用于表示作例子、例证或说明。本发明实施例中被描述为“可选地”或者“示例性地”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“可选地”或者“示例性地”等词旨在以具体方式呈现相关概念。
[0017] 为了便于理解本发明实施例提供的方案,示例性地给出了部分与本发明相关概念的说明以供参考。如下所示:
[0018] 跨平台:指一套代码可以在不同的平台上运行,其中,平台指移动端应用运行的操作系统平台,例如,谷歌的安卓(Android)平台和苹果的iOS平台。
[0019] JSBridge:即为JavaScript桥,用于向JavaScript(即混合开发模式中的前端部分)提供调用Native功能的接口,实现使用地址位置、摄像头甚至支付等Native功能。JavaScript桥是Native和非Native之间双向通信的通道。
[0020] 混合开发模式:也称为Hybrid模式,是开发移动端应用的一种的典型模式。其中,混合指的是原生开发技术和Web。
[0021] Hybrid App:移动应用保持HTML、CSS、JavaScript的体系结构在原生Webview中执行,一切使用Web技术开发原生移动应用的场景都可以称之为Hybrid App。
[0022] SPA:即单页面应用(英文全称:Single Page Web Application),具体实现原理是通过前端首次进入页面时,请求一个超文本标记语言(Hyper Text Markup Language,HTML)文件,刷新、清除并切换到其他人机交互(User Interface,UI)组件,此时路由路径发生了相应的变化,但是没有发生新的HTML文件请求。那么通过JavaScript感知统一资源定位符(Uniform Resource Locator,URL)的变化,进而可以通过JavaScript动态地将当前页面的内容清除,然后将下一个页面的内容挂载到当前页面上。
[0023] 实施例一
[0024] 在上述概念的基础上,本发明实施例提供了一种跨平台应用装置,该装置包括应用模块101和前端模块102。
[0025] 其中,应用模块与前端模块可以通过桥接接口通信。
[0026] 示例性地,该桥接接口可以为JSBridge接口,通过该JSBridge接口可以实现应用模块与前端模块之间的双向通信。
[0027] 需要说明的是,在本实施例中,该桥接接口支持同步通信和异步通信两种通信方式,其中,基于异步通信的方式可以避免相关功能接口的等待。
[0028] 应用模块可以理解为实现某一软件应用功能的部件,该应用模块有对应的应用名称、应用标识。
[0029] 例如,假设该应用模块用于实现微信的功能,那么该应用模块对应有“微信”这一应用名称,以及微信的应用标识。
[0030] 前端模块用于向应用模块提供所需的组件、代码等,例如,UI组件库、SPA路由系统等。前端模块可以通过桥接接口调用应用模块的功能插件以实现相应的功能。相反,应用模块也可以通过前端模块提供的功能接口调用前端模块提供的相关代码程序。
[0031] 进一步地,应用模块包括热更新单元1011,该热更新单元用于更新本地Web资源文件。该功能可以理解为当热更新单元实时检测到本地应用的当前Web资源文件并非是最新版本时,对本地应用的Web资源文件进行升级或更新。
[0032] 示例性地,本实施例提供一种热更新单元更新本地Web资源文件的可选的实现方式为,从服务器获取特定版本的Web资源文件列表,将特定版本的Web资源文件列表与本地资源文件进行对比,获取待更新的文件集合,根据待更新的文件集合更新本地Web资源文件。
[0033] 在上述实现过程中,特定版本的Web资源文件列表可以理解为某一应用的指定版本的Web资源文件列表,例如,微信这一应用的最新版本(假设为3.0版本)。本地资源文件可以理解为应用当前版本的资源文件列表(假设为微信2.0版本),那么在获知这两个版本资源文件列表的情况下,可以将两者进行对比,以获取待更新的文件集合。其中,该更新的文件集合可以理解为相比于特定版本Web资源文件列表,本地资源文件中缺失的文件。例如,微信3.0版本比微信2.0版本中多增加的功能插件等等。
[0034] 在本实施例中,通过应用模块所包含的热更新单元实时更新本地Web资源文件的方式,可以实现业务逻辑代码的快速更新,并通过应用模块与前端模块之间的通信,实现最新资源文件相应的功能。
[0035] 本发明实施例提供了一种跨平台应用装置,包括应用模块和前端模块,其中,应用模块和前端模块通过桥接接口通信,应用模块包括热更新单元,热更新单元用于更新本地Web资源文件。通过本发明实施例提供的方案能够在业务逻辑频繁更新的场景下,通过对Web资源包热更新的方式,快速实现业务逻辑代码的更新,并实现最新资源文件相应的功能。
[0036] 实施例二
[0037] 图2为本发明实施例提供的一种跨平台应用装置,本发明实施例是在上述实施例一的基础上做的进一步优化,该装置具体包括:应用模块201和前端模块202。
[0038] 其中,应用模块与前端模块可以通过桥接接口通信,该桥接接口可以为JSBridge接口,通过该JSBridge接口能够给实现应用模块与前端模块之间的双向通信。
[0039] 进一步地,该桥接接口可以用于对应用模块和前端模块的功能方法池和回调方法池进行管理和维护。其实现原理主要是对运行环境进行初始化配置,并在配置完相关参数之后,在应用模块和前端模块进行功能方法池和回调方法池的维护。
[0040] 在初始化配置过程中,针对安卓平台和IOS平台采用不同的配置方式,例如,在安卓平台中,利用桥接对象的JavaScriptInterface注解,将功能插件及其提供的方法注入到JavaScript运行环境的NativeBO变量中;在IOS平台中,则是利用IOS系统的JavaScript Core引擎将功能插件及方法注入到JavaScript运行环境的NativeBO变量。
[0041] 在维护过程中,对于功能方法池的维护主要是对功能方法池中提供的功能方法的维护,例如,对功能方法的注册、删除、查询等等;对于回调方法池的维护主要是在异步通信机制下,自动维护回调方法池中的回调方法,例如,随机生成回调方法的标识(Identification,ID)名称,自动注册回调方法,并实现删除、查询等功能。这样基于桥接接口的功能,可以使得开发者无需显式管理回调方法。
[0042] 需要说明的是,在本实施例中,桥接接口支持同步通信和异步通信两种通信方式,其中,基于异步通信的方式可以避免相关功能接口的等待。
[0043] 应用模块可以理解为实现某一软件应用功能的部件,该应用模块有对应的应用名称、应用标识。例如,假设该应用模块用于实现微信的功能,那么该应用模块对应有“微信”这一应用名称,以及微信的应用标识。其中,应用模块的应用名称、应用标识可以通过在线打包工具进行设置,同样地,也可以设置该应用模块的启动页(例如,进入微信这一应用的启动页)。
[0044] 前端模块通过单一的桥接接口与应用模块进行通信,在简单的结构设计模式下,可以调用应用模块的功能插件,并传递消息和功能方法执行结果以实现相应的功能。
[0045] 另外,前端模块也可以用于向应用模块提供适配的组件、代码,例如,UI组件库、SPA路由系统等。并且,前端模块还可以实现相应的前端功能,例如,构建打包、代码压缩优化、代码混淆功能等。这样,应用模块也可以通过前端模块提供的功能接口调用前端模块提供的相关代码程序。
[0046] 进一步地,前端模块还包括路由单元,该路由单元可以用于通过定位接口实现页面路由跳转,其中,定位接口可以采用Location接口。
[0047] 路由单元的实现原理为基于该路由单元维护前端模块的路由历史堆栈,监听路由散列(Hash)值的变化,在IOS系统上利用定位接口实现页面路由的跳转,这样可以解决现有技术中的路由库(例如,vue-router)不能同时支持IOS和安卓单页面路由问题。
[0048] 另外,前端模块还用于自动转换分辨率参数,其主要的实现过程为基于postcss-aspect-ratio-mini,post-cssnext,postcss-px-to-viewport等PostCSS插件,通过postcss-px-to-viewport插件的配置,实现将开发阶段的绝对尺寸单位(用px表示)自动转换为相对单位(用vw表示),以满足适配不同尺寸的屏幕和分辨率。
[0049] 在本实施例中,应用模块可以包括热更新单元2011,该热更新单元用于更新本地网络Web资源文件。该功能可以理解为当热更新单元实时检测到本地应用的当前Web资源文件并非是最新版本时,对本地应用的Web资源文件进行升级或更新。
[0050] 示例性地,热更新单元更新本地Web资源文件过程可以为,从服务器获取特定版本的Web资源文件列表,将特定版本的Web资源文件列表与本地资源文件进行对比,获取待更新的文件集合,根据待更新的文件集合更新本地Web资源文件。
[0051] 在上述实现过程中,特定版本的Web资源文件列表可以理解为某一应用的指定版本的Web资源文件列表,例如,微信这一应用的最新版本(假设为3.0版本)。本地资源文件可以理解为应用当前版本的资源文件列表(假设为微信2.0版本),那么在获知这两个版本资源文件列表的情况下,可以将两者进行对比,以获取待更新的文件集合。其中,该更新的文件集合可以理解为相比于特定版本Web资源文件列表,本地资源文件中缺失的文件。例如,微信3.0版本比微信2.0版本中多增加的功能插件等等。
[0052] 另外,热更新单元可以通过微服务网关与服务器进行交互,例如,使用标准的Restful格接口进行信息交互,以实现根据待更新的文件集合从服务器下载相关文件。而且,在下载待更新文件集合的相关文件之后,可以将下载的文件合并至本地资源文件,并更新本地Web资源版本号,这样可以避免热更新过程意外中断导致版本不一致的问题。
[0053] 进一步地,上述热更新单元将特定版本的Web资源文件列表与本地资源文件进行对比,获取待更新的文件集合的过程可以通过如下方式实现:
[0054] 热更新单元扫描本地资源文件,对本地资源文件逐一进行消息摘要算法(Message Digest Algorithm,MD5)签名,将签名后的本地资源文件与特定版本的Web资源文件列表中的文件名称和文件签名进行对比,将签名后的本地资源文件与特定版本的Web资源文件列表中签名不相同的文件,以及本地资源文件中不存在的特定版本的Web资源文件列表中的文件作为待更新的文件集合。
[0055] 也即,经过文件名称和文件签名的对比之后,将本地资源文件中不存在的文件名称和文件签名所对应的文件作为待更新的文件集合。
[0056] 另外,应用模块也可以包括环境配置读取单元2012,在热更新单元更新本地Web资源文件之前,热更新单元通过环境配置读取单元读取应用的配置信息,例如,应用标识、热更新启动开关、热更新服务地址、Web资源本地存储路径等。当基于配置信息确定启动热更新时,执行更新过程。反之,当确定不启动热更新时,直接加载本地Web资源。
[0057] 进一步地,在执行更新过程时,热更新单元可以首先从服务器获取应用的最新资源版本号,并将该版本号与本地资源版本号进行对比,若这两个版本号一致,则确定不用更新,直接加载本地资源;反之,若两个版本号不一致,则确定继续更新本地Web资源文件,进而基于上述过程更新本地Web资源文件。
[0058] 需要说明的是,在本实施例中,热更新服务可以同时支持多个应用的热更新请求,其中,通过应用标识可以区分不用应用的热更新请求。
[0059] 而且,在热更新之前,单独获取资源版本号能够实现在本地资源版本与服务器最新资源版本一致的情况下,减少系统开销和不必要的资源下载。
[0060] 应用模块还可以包括H5容器2013,当热更新单元更新完本地Web资源文件之后,H5容器可以用于加载本地Web资源文件。
[0061] 在本实施例中,应用模块还可以包括插件加载单元2014,该插件加载单元可以用于根据插件清单文件加载插件,该插件加载过程可以通过以下方式实现:
[0062] 配置初始运行环境参数,例如,初始化H5容器实例、设置安全策略、对Webview进行配置管理、进行运行环境检测和安全检查(比如,对Android Root进行检测、对IOS进行越狱检测等)、管理环境参数和变量等。
[0063] 在配置初始运行环境参数之后,可以根据插件清单文件实例化功能插件,并加载实例化后的功能插件,其中,插件清单文件中包括某一应用所需的功能插件。
[0064] 进一步地,本实施例提供一种根据插件清单文件实例化功能插件的可选的实现方式为,解析插件清单文件以获取插件配置文件,并对该插件配置文件进行校验。其中,插件配置文件是在插件开发过程中以XML格式描述的,对插件配置文件进行校验主要包括验证插件配置文件的格式是否合法,所需的要素是否齐全等。解析校验后的插件配置文件以获取插件类(例如,插件类的全限定名称),并加载插件类,对插件类进行实例化,获得插件实例,进而将插件实例添加至插件集合数据结构中。
[0065] 可选地,在上述过程中,可以使用ClassLoader逐一加载插件类,并将插件实例添加至应用的插件Map数据结构中缓存。其中,缓存的方式可以是一个以插件名称为键、以插件实例为值的键值对。
[0066] 在插件加载单元通过上述方式加载完功能插件之后,可以由H5容器的JSBridge调用相应的功能插件。
[0067] 本发明实施例提供了一种跨平台应用装置,包括应用模块和前端模块,其中,应用模块和前端模块通过桥接接口通信,应用模块包括热更新单元,热更新单元用于更新本地Web资源文件。通过本发明实施例提供的方案能够在业务逻辑频繁更新的场景下,通过对Web资源包热更新的方式,快速实现业务逻辑代码的更新,并实现最新资源文件相应的功能。
[0068] 实施例三
[0069] 图3为本发明实施例三提供的一种终端的结构示意图,如图3所示,该终端包括处理器301、存储器302、输入装置303和输出装置304;终端中处理器301的数量可以是一个或多个,图3中以一个处理器301为例;终端中的处理器301、存储器302、输入装置303和输出装置304可以通过总线或其他方式连接,图3中以通过总线连接为例。
[0070] 存储器302作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例一、二中的跨平台应用装置对应的程序指令/模块(例如,跨平台应用装置中的应用模块、前端模块)。处理器301通过运行存储在存储器302中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的跨平台应用装置的功能。
[0071] 存储器302可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器302可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器302可进一步包括相对于处理器301远程设置的存储器,这些远程存储器可以通过网络连接至设备/终端/服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0072] 输入装置303可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置304可包括显示屏等显示设备。
[0073] 实施例四
[0074] 本发明实施例四还提供一种包含计算机可执行指令的存储介质,当计算机可执行指令在由计算机处理器执行时,可以实现上述跨平台应用装置的功能。
[0075] 通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的功能。
[0076] 值得注意的是,上述跨平台应用装置的实施例中,装置所包括的模块只是按照功能逻辑进行划分,但并不局限于上述的划分方式,只要能够实现相应的功能即可;另外,前端模块、应用模块、热更新单元的具体名称也只是为了便于区分,并不用于限制本发明的保护范围。
[0077] 注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈